function prepareChart(chartType, chartData, labels, header) {
    const data = {
        labels: labels,
        datasets: [{
            label: header,
            data: chartData,
            backgroundColor: [
                'rgba(210,105,30,0.8)',
                'rgba(244,164,96,0.8)',
                'rgba(222,184,135,0.8)',
                'rgba(188,143,143,0.8)',
                'rgba(176,196,222,0.8)',
                'rgba(184,134,11,0.8)',
                'rgba(238,232,170,0.8)',
                'rgba(189,183,107,0.8)',
                'rgba(128,128,0,0.8)',
                'rgba(255,255,0,0.8)',
                'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)',
                'rgba(143,188,143,0.8)',
                'rgba(0,255,255,0.8)',
                'rgba(230,230,250,0.8)',
                'rgba(105,105,105,0.8)'
            ],
            borderColor: [
                'rgb(255, 99, 132,0.8)',
                'rgb(75, 192, 192,0.8)',
                'rgb(255, 205, 86,0.8)',
                'rgba(255,182,193,0.8)',
                'rgba(219,112,147,0.8)',
                'rgba(139,69,19,0.8)',
                'rgba(210,105,30,0.8)',
                'rgba(244,164,96,0.8)',
                'rgba(222,184,135,0.8)',
                'rgba(188,143,143,0.8)',
                'rgba(176,196,222,0.8)',
                'rgba(184,134,11,0.8)',
                'rgba(238,232,170,0.8)',
                'rgba(189,183,107,0.8)',
                'rgba(128,128,0,0.8)',
                'rgba(255,255,0,0.8)',
                'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)',
                'rgba(143,188,143,0.8)',
                'rgba(0,255,255,0.8)',
                'rgba(230,230,250,0.8)',
                'rgba(105,105,105,0.8)'
            ],
            borderWidth: 1
        }]
    };

    // for line chart
    const data2 = {
        labels: labels,
        datasets: [{
            label: header,
            data: chartData,
            fill: false,
            borderColor: 'rgb(75, 192, 192)',
            tension: 0.4
        }]
    };

    // for radar chart
    const data3 = {
        labels: labels,
        datasets: [{
            label: header,
            data: chartData,
            fill: true,
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgb(255, 99, 132)',
            pointBackgroundColor: 'rgb(255, 99, 132)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(255, 99, 132)'
        }]
    };

    if (chartType == 'bar') {

        const ctx1 = document.getElementById('chart3').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'bar',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'doughnut') {

        const ctx2 = document.getElementById('chart3').getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'doughnut',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'pie') {
        const ctx2 = document.getElementById('chart3').getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'pie',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'line') {
        const ctx2 = document.getElementById('chart3').getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'line',
            data: data2,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'radar') {
        const ctx2 = document.getElementById('chart3').getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'radar',
            data: data3,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    }
}


function prepareChart6(chartType, chartData, chartData1, chartData2, chartData3, chartData4, chartData5, chartData6, chartData7, labels, header) {
    // for line chart
    const data2 = {
        labels: labels,
        datasets: [{
            label: "Female",
            fill: false,
            borderColor: 'rgb(255, 99, 132,0.8)',
            backgroundColor: 'rgb(255, 99, 132,0.8)',
            data: chartData7,
        }, {
            label: "Male",
            fill: false,
            borderColor: 'rgb(150, 99, 132,0.8)',
            backgroundColor: 'rgb(150, 99, 132,0.8)',
            data: chartData6,
        },
        {
            label: "Blue Collar",
            fill: false,
            borderColor: 'rgb(255, 99, 100,0.8)',
            backgroundColor: 'rgb(255, 99, 100,0.8)',
            data: chartData5,
        }, {
            label: "White Collar",
            fill: false,
            borderColor: 'rgb(50, 78, 168)',
            backgroundColor: 'rgb(50, 78, 168)',
            data: chartData4,
        }, {
            label: "Total",
            fill: false,
            borderColor: 'rgb(168, 50, 64)',
            backgroundColor: 'rgb(168, 50, 64)',
            data: chartData3,
        }, {
            label: "Non Emp",
            fill: false,
            borderColor: 'rgb(166, 168, 50)',
            backgroundColor: 'rgb(166, 168, 50)',
            data: chartData2,
        }, {
            label: "Contractual Emp",
            fill: false,
            borderColor: 'rgb(128, 0, 0)',
            backgroundColor: 'rgb(128, 0, 0)',
            data: chartData1,
        }, {
            label: "Regular Emp",
            fill: false,
            borderColor: 'rgb(255, 215, 0)',
            backgroundColor: 'rgb(255, 215, 0)',
            data: chartData,
        }]
    };

    // for bar chart
    const data = {
        labels: labels,
        datasets: [{
            label: "Female",
            borderColor: 'rgb(190, 20, 255)',
            backgroundColor: 'rgb(190, 20, 255)',
            borderWidth: 1,
            data: chartData7,
            hoverOffset: 4
        }, {
            label: "Male",
            borderColor: 'rgb(120, 230, 255)',
            backgroundColor: 'rgb(120, 230, 255)',
            borderWidth: 1,
            data: chartData6,
            hoverOffset: 4
        }, {
            label: "Blue Collar",
            borderColor: 'rgb(255, 12, 20)',
            backgroundColor: 'rgb(255, 12, 20)',
            borderWidth: 1,
            data: chartData5,
            hoverOffset: 4
        }, {
            label: "White Collar",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(50, 78, 168)',
            borderWidth: 1,
            data: chartData4,
            hoverOffset: 4
        }, {
            label: "Total",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(120, 100, 120)',
            borderWidth: 1,
            data: chartData3,
            hoverOffset: 4
        }, {
            label: "Non Emp",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(166, 168, 50)',
            borderWidth: 1,
            data: chartData2,
            hoverOffset: 4
        }, {
            label: "Contractual Emp",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(128, 0, 0)',
            borderWidth: 1,
            data: chartData1,
            hoverOffset: 4
        }, {
            label: "Regular Emp",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(255, 215, 0)',
            borderWidth: 1,
            data: chartData,
            hoverOffset: 4
        }]
    };

    // for pie and doughnut chart
    const data3 = {
        labels: labels,
        datasets: [{
            label: "Female",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)', 'rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',

                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData7,
            hoverOffset: 4
        }, {
            label: "Male",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)', 'rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData6,
            hoverOffset: 4
        }, {
            label: "Blue Collar",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)', 'rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData5,
            hoverOffset: 4
        }, {
            label: "White Collar",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData4,
            hoverOffset: 4
        }, {
            label: "Total",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData3,
            hoverOffset: 4
        }, {
            label: "Non Emp",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData2,
            hoverOffset: 4
        }, {
            label: "Contractual Emp",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData1,
            hoverOffset: 4
        }, {
            label: "Regular Emp",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData,
            hoverOffset: 4
        }]
    };

    //for radar chart
    const data4 = {
        labels: labels,
        datasets: [{
            label: "Female",
            fill: true,
            data: chartData7,
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgb(255, 99, 132)',
            pointBackgroundColor: 'rgb(255, 99, 132)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(255, 99, 132)'
        }, {
            label: "Male",
            fill: true,
            data: chartData6,
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgb(255, 99, 132)',
            pointBackgroundColor: 'rgb(255, 99, 132)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(255, 99, 132)'
        }, {
            label: "Blue Collar",
            fill: true,
            data: chartData5,
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgb(255, 99, 132)',
            pointBackgroundColor: 'rgb(255, 99, 132)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(255, 99, 132)'
        }, {
            label: "White Collar",
            data: chartData4,
            backgroundColor: 'rgba(50, 78, 168, 0.2)',
            borderColor: 'rgb(50, 78, 168)',
            pointBackgroundColor: 'rgb(50, 78, 168)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(50, 78, 168)'
        }, {
            label: "Total",
            data: chartData3,
            backgroundColor: 'rgba(168, 50, 64, 0.2)',
            borderColor: 'rgb(168, 50, 64)',
            pointBackgroundColor: 'rgb(168, 50, 64)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(168, 50, 64)'
        }, {
            label: "Non Emp",
            data: chartData2,
            backgroundColor: 'rgba(166, 168, 50, 0.2)',
            borderColor: 'rgb(166, 168, 50)',
            pointBackgroundColor: 'rgb(166, 168, 50)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(166, 168, 50)'
        }, {
            label: "Contractual Emp",
            data: chartData1,
            backgroundColor: 'rgba(128, 0, 0, 0.2)',
            borderColor: 'rgb(128, 0, 0)',
            pointBackgroundColor: 'rgb(128, 0, 0)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(128, 0, 0)'
        }, {
            label: "Regular Emp",
            data: chartData,
            backgroundColor: 'rgba(255, 215, 0, 0.2)',
            borderColor: 'rgb(255, 215, 0)',
            pointBackgroundColor: 'rgb(255, 215, 0)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(255, 215, 0)'
        }]
    };

    if (chartType == 'bar') {
        const ctx1 = document.getElementById('chart4').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'bar',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                }
            }
        });
    } else if (chartType == 'doughnut') {
        const ctx1 = document.getElementById('chart4').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'doughnut',
            data: data3,
            options: {
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                },
            },
        });
    } else if (chartType == 'pie') {
        const ctx1 = document.getElementById('chart4').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'pie',
            data: data3,
            options: {
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                }
            }
        });
    } else if (chartType == 'line') {
        const ctx1 = document.getElementById('chart4').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'line',
            data: data2,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                },
                tension: 0.4,
            }
        });
    } else if (chartType == 'radar') {
        const ctx2 = document.getElementById('chart4').getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'radar',
            data: data4,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    }
}

function prepareChart2(chartType, labels, header, chartData1, chartData2) {
    // for line chart
    const data2 = {
        labels: labels,
        datasets: [{
            label: "Before",
            fill: false,
            borderColor: 'rgb(50, 168, 82)',
            backgroundColor: 'rgb(50, 168, 82)',
            data: chartData1,
        }, {
            label: "After",
            fill: false,
            borderColor: 'rgb(50, 78, 168)',
            backgroundColor: 'rgb(50, 78, 168)',
            data: chartData2,
        }]
    };

    // for bar chart
    const data = {
        labels: labels,
        datasets: [{
            label: "Before",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(50, 168, 82)',
            borderWidth: 1,
            data: chartData1,
            hoverOffset: 4
        }, {
            label: "After",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(50, 78, 168)',
            borderWidth: 1,
            data: chartData2,
            hoverOffset: 4
        }]
    };

    // for pie and doughnut chart
    const data3 = {
        labels: labels,
        datasets: [{
            label: "Before",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData1,
            hoverOffset: 4
        }, {
            label: "After",
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData2,
            hoverOffset: 4
        }]
    };

    //for radar chart
    const data4 = {
        labels: labels,
        datasets: [{
            label: "Before",
            fill: true,
            data: chartData1,
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgb(255, 99, 132)',
            pointBackgroundColor: 'rgb(255, 99, 132)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(255, 99, 132)'
        }, {
            label: "After",
            data: chartData2,
            backgroundColor: 'rgba(50, 78, 168, 0.2)',
            borderColor: 'rgb(50, 78, 168)',
            pointBackgroundColor: 'rgb(50, 78, 168)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(50, 78, 168)'
        }]
    };

    if (chartType == 'bar') {
        const ctx1 = document.getElementById('chart3').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'bar',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                }
            }
        });
    } else if (chartType == 'doughnut') {
        const ctx1 = document.getElementById('chart3').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'doughnut',
            data: data3,
            options: {
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                },
            },
        });
    } else if (chartType == 'pie') {
        const ctx1 = document.getElementById('chart3').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'pie',
            data: data3,
            options: {
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                }
            }
        });
    } else if (chartType == 'line') {
        const ctx1 = document.getElementById('chart3').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'line',
            data: data2,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                },
                tension: 0.4,
            }
        });
    } else if (chartType == 'radar') {
        const ctx2 = document.getElementById('chart3').getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'radar',
            data: data4,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    }
}

function prepareChart5(chartType, chartData5, labels, header, chartData4, chartData3, chartData2, chartData1, chartData) {
    // for line chart
    const data2 = {
        labels: labels,
        datasets: [{
            label: new Date().getFullYear() - 5,
            fill: false,
            borderColor: 'rgb(50, 168, 82)',
            backgroundColor: 'rgb(50, 168, 82)',
            data: chartData5,
        }, {
            label: new Date().getFullYear() - 4,
            fill: false,
            borderColor: 'rgb(50, 78, 168)',
            backgroundColor: 'rgb(50, 78, 168)',
            data: chartData4,
        }, {
            label: new Date().getFullYear() - 3,
            fill: false,
            borderColor: 'rgb(168, 50, 64)',
            backgroundColor: 'rgb(168, 50, 64)',
            data: chartData3,
        }, {
            label: new Date().getFullYear() - 2,
            fill: false,
            borderColor: 'rgb(166, 168, 50)',
            backgroundColor: 'rgb(166, 168, 50)',
            data: chartData2,
        }, {
            label: new Date().getFullYear() - 1,
            fill: false,
            borderColor: 'rgb(128, 0, 0)',
            backgroundColor: 'rgb(128, 0, 0)',
            data: chartData1,
        }, {
            label: new Date().getFullYear(),
            fill: false,
            borderColor: 'rgb(255, 215, 0)',
            backgroundColor: 'rgb(255, 215, 0)',
            data: chartData,
        }]
    };

    // for bar chart
    const data = {
        labels: labels,
        datasets: [{
            label: new Date().getFullYear() - 5,
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(50, 168, 82)',
            borderWidth: 1,
            data: chartData5,
            hoverOffset: 4
        }, {
            label: new Date().getFullYear() - 4,
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(50, 78, 168)',
            borderWidth: 1,
            data: chartData4,
            hoverOffset: 4
        }, {
            label: new Date().getFullYear() - 3,
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(168, 50, 64)',
            borderWidth: 1,
            data: chartData3,
            hoverOffset: 4
        }, {
            label: new Date().getFullYear() - 2,
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(166, 168, 50)',
            borderWidth: 1,
            data: chartData2,
            hoverOffset: 4
        }, {
            label: new Date().getFullYear() - 1,
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(128, 0, 0)',
            borderWidth: 1,
            data: chartData1,
            hoverOffset: 4
        }, {
            label: new Date().getFullYear(),
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(255, 215, 0)',
            borderWidth: 1,
            data: chartData,
            hoverOffset: 4
        }]
    };

    // for pie and doughnut chart
    const data3 = {
        labels: labels,
        datasets: [{
            label: new Date().getFullYear() - 5,
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData5,
            hoverOffset: 4
        }, {
            label: new Date().getFullYear() - 4,
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData4,
            hoverOffset: 4
        }, {
            label: new Date().getFullYear() - 3,
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData3,
            hoverOffset: 4
        }, {
            label: new Date().getFullYear() - 2,
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData2,
            hoverOffset: 4
        }, {
            label: new Date().getFullYear() - 1,
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData1,
            hoverOffset: 4
        }, {
            label: new Date().getFullYear(),
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData,
            hoverOffset: 4
        }]
    };

    //for radar chart
    const data4 = {
        labels: labels,
        datasets: [{
            label: new Date().getFullYear() - 5,
            fill: true,
            data: chartData5,
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgb(255, 99, 132)',
            pointBackgroundColor: 'rgb(255, 99, 132)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(255, 99, 132)'
        }, {
            label: new Date().getFullYear() - 4,
            data: chartData4,
            backgroundColor: 'rgba(50, 78, 168, 0.2)',
            borderColor: 'rgb(50, 78, 168)',
            pointBackgroundColor: 'rgb(50, 78, 168)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(50, 78, 168)'
        }, {
            label: new Date().getFullYear() - 3,
            data: chartData3,
            backgroundColor: 'rgba(168, 50, 64, 0.2)',
            borderColor: 'rgb(168, 50, 64)',
            pointBackgroundColor: 'rgb(168, 50, 64)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(168, 50, 64)'
        }, {
            label: new Date().getFullYear() - 2,
            data: chartData2,
            backgroundColor: 'rgba(166, 168, 50, 0.2)',
            borderColor: 'rgb(166, 168, 50)',
            pointBackgroundColor: 'rgb(166, 168, 50)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(166, 168, 50)'
        }, {
            label: new Date().getFullYear() - 1,
            data: chartData1,
            backgroundColor: 'rgba(128, 0, 0, 0.2)',
            borderColor: 'rgb(128, 0, 0)',
            pointBackgroundColor: 'rgb(128, 0, 0)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(128, 0, 0)'
        }, {
            label: new Date().getFullYear(),
            data: chartData,
            backgroundColor: 'rgba(255, 215, 0, 0.2)',
            borderColor: 'rgb(255, 215, 0)',
            pointBackgroundColor: 'rgb(255, 215, 0)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(255, 215, 0)'
        }]
    };

    if (chartType == 'bar') {
        const ctx1 = document.getElementById('chart3').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'bar',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                }
            }
        });
    } else if (chartType == 'doughnut') {
        const ctx1 = document.getElementById('chart3').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'doughnut',
            data: data3,
            options: {
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                },
            },
        });
    } else if (chartType == 'pie') {
        const ctx1 = document.getElementById('chart3').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'pie',
            data: data3,
            options: {
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                }
            }
        });
    } else if (chartType == 'line') {
        const ctx1 = document.getElementById('chart3').getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'line',
            data: data2,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                },
                tension: 0.4,
            }
        });
    } else if (chartType == 'radar') {
        const ctx2 = document.getElementById('chart3').getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'radar',
            data: data4,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    }
}

function prepareChart_dynamic_id(chartType, chartData, labels, header, id) {
    const data = {
        labels: labels,
        datasets: [{
            label: header,
            data: chartData,
            backgroundColor: [
                'rgba(210,105,30,0.8)',
                'rgba(244,164,96,0.8)',
                'rgba(222,184,135,0.8)',
                'rgba(188,143,143,0.8)',
                'rgba(176,196,222,0.8)',
                'rgba(184,134,11,0.8)',
                'rgba(238,232,170,0.8)',
                'rgba(189,183,107,0.8)',
                'rgba(128,128,0,0.8)',
                'rgba(255,255,0,0.8)',
                'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)',
                'rgba(143,188,143,0.8)',
                'rgba(0,255,255,0.8)',
                'rgba(230,230,250,0.8)',
                'rgba(105,105,105,0.8)'
            ],
            borderColor: [
                'rgb(255, 99, 132,0.8)',
                'rgb(75, 192, 192,0.8)',
                'rgb(255, 205, 86,0.8)',
                'rgba(255,182,193,0.8)',
                'rgba(219,112,147,0.8)',
                'rgba(139,69,19,0.8)',
                'rgba(210,105,30,0.8)',
                'rgba(244,164,96,0.8)',
                'rgba(222,184,135,0.8)',
                'rgba(188,143,143,0.8)',
                'rgba(176,196,222,0.8)',
                'rgba(184,134,11,0.8)',
                'rgba(238,232,170,0.8)',
                'rgba(189,183,107,0.8)',
                'rgba(128,128,0,0.8)',
                'rgba(255,255,0,0.8)',
                'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)',
                'rgba(143,188,143,0.8)',
                'rgba(0,255,255,0.8)',
                'rgba(230,230,250,0.8)',
                'rgba(105,105,105,0.8)'
            ],
            borderWidth: 1
        }]
    };

    // for line chart
    const data2 = {
        labels: labels,
        datasets: [{
            label: header,
            data: chartData,
            fill: false,
            borderColor: 'rgb(75, 192, 192)',
            tension: 0.4
        }]
    };

    // for radar chart
    const data3 = {
        labels: labels,
        datasets: [{
            label: header,
            data: chartData,
            fill: true,
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgb(255, 99, 132)',
            pointBackgroundColor: 'rgb(255, 99, 132)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(255, 99, 132)'
        }]
    };

    if (chartType == 'bar') {

        const ctx1 = document.getElementById(id).getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'bar',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'doughnut') {

        const ctx2 = document.getElementById(id).getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'doughnut',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'pie') {
        const ctx2 = document.getElementById(id).getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'pie',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'line') {
        const ctx2 = document.getElementById(id).getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'line',
            data: data2,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'radar') {
        const ctx2 = document.getElementById(id).getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'radar',
            data: data3,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    }
}


function prepareChart_dynamic_id(chartType, chartData, labels, header, id) {
    const data = {
        labels: labels,
        datasets: [{
            label: header,
            data: chartData,
            backgroundColor: [
                'rgba(210,105,30,0.8)',
                'rgba(244,164,96,0.8)',
                'rgba(222,184,135,0.8)',
                'rgba(188,143,143,0.8)',
                'rgba(176,196,222,0.8)',
                'rgba(184,134,11,0.8)',
                'rgba(238,232,170,0.8)',
                'rgba(189,183,107,0.8)',
                'rgba(128,128,0,0.8)',
                'rgba(255,255,0,0.8)',
                'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)',
                'rgba(143,188,143,0.8)',
                'rgba(0,255,255,0.8)',
                'rgba(230,230,250,0.8)',
                'rgba(105,105,105,0.8)'
            ],
            borderColor: [
                'rgb(255, 99, 132,0.8)',
                'rgb(75, 192, 192,0.8)',
                'rgb(255, 205, 86,0.8)',
                'rgba(255,182,193,0.8)',
                'rgba(219,112,147,0.8)',
                'rgba(139,69,19,0.8)',
                'rgba(210,105,30,0.8)',
                'rgba(244,164,96,0.8)',
                'rgba(222,184,135,0.8)',
                'rgba(188,143,143,0.8)',
                'rgba(176,196,222,0.8)',
                'rgba(184,134,11,0.8)',
                'rgba(238,232,170,0.8)',
                'rgba(189,183,107,0.8)',
                'rgba(128,128,0,0.8)',
                'rgba(255,255,0,0.8)',
                'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)',
                'rgba(143,188,143,0.8)',
                'rgba(0,255,255,0.8)',
                'rgba(230,230,250,0.8)',
                'rgba(105,105,105,0.8)'
            ],
            borderWidth: 1
        }]
    };

    // for line chart
    const data2 = {
        labels: labels,
        datasets: [{
            label: header,
            data: chartData,
            fill: false,
            borderColor: 'rgb(75, 192, 192)',
            tension: 0.4
        }]
    };

    // for radar chart
    const data3 = {
        labels: labels,
        datasets: [{
            label: header,
            data: chartData,
            fill: true,
            backgroundColor: 'rgba(255, 99, 132, 0.2)',
            borderColor: 'rgb(255, 99, 132)',
            pointBackgroundColor: 'rgb(255, 99, 132)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(255, 99, 132)'
        }]
    };

    if (chartType == 'bar') {

        const ctx1 = document.getElementById(id).getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'bar',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'doughnut') {

        const ctx2 = document.getElementById(id).getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'doughnut',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'pie') {
        const ctx2 = document.getElementById(id).getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'pie',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'line') {
        const ctx2 = document.getElementById(id).getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'line',
            data: data2,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    } else if (chartType == 'radar') {
        const ctx2 = document.getElementById(id).getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'radar',
            data: data3,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    }
}


function prepareChart_for_two_datasets_with_dynamic_id(chartType, chartData1, chartData2, labels, header, id) {
    // for line chart
    const data2 = {
        labels: labels,
        datasets: [{
            label: 'BMI(<25)',
            fill: false,
            borderColor: 'rgb(50, 78, 168)',
            backgroundColor: 'rgb(50, 78, 168)',
            data: chartData1,
        }, {
            label: 'BMI(>=25)',
            fill: false,
            borderColor: 'rgb(168, 50, 64)',
            backgroundColor: 'rgb(168, 50, 64)',
            data: chartData2,
        }]
    };

    // for bar chart
    const data = {
        labels: labels,
        datasets: [{
            label: 'BMI(<25)',
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(50, 78, 168)',
            borderWidth: 1,
            data: chartData1,
            hoverOffset: 4
        }, {
            label: 'BMI(>=25)',
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: 'rgb(168, 50, 64)',
            borderWidth: 1,
            data: chartData2,
            hoverOffset: 4
        }]
    };

    // for pie and doughnut chart
    const data3 = {
        labels: labels,
        datasets: [{
            label: 'BMI(<25)',
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData1,
            hoverOffset: 4
        }, {
            label: 'BMI(>=25)',
            borderColor: 'rgb(255, 255, 255)',
            backgroundColor: ['rgb(255, 99, 132)', 'rgb(255, 159, 64)', 'rgb(255, 205, 86)', 'rgb(75, 192, 192)', 'rgb(54, 162, 235)', 'rgba(154,205,50,0.8)',
                'rgba(124,252,0,0.8)',
                'rgba(128,0,0,0.8)',
                'rgba(178,34,34,0.8)',
                'rgba(220,20,60,0.8)',
                'rgba(255,0,0,0.8)',
                'rgba(255,99,71,0.8)',
                'rgba(205,92,92,0.8)',
                'rgba(233,150,122,0.8)',
                'rgba(255,140,0,0.8)',
                'rgba(255,215,0,0.8)',
                'rgba(152,251,152,0.8)'],
            // borderWidth: 2,
            data: chartData2,
            hoverOffset: 4
        }]
    };

    //for radar chart
    const data4 = {
        labels: labels,
        datasets: [{
            label: 'BMI(<25)',
            data: chartData1,
            backgroundColor: 'rgba(50, 78, 168, 0.2)',
            borderColor: 'rgb(50, 78, 168)',
            pointBackgroundColor: 'rgb(50, 78, 168)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(50, 78, 168)'
        }, {
            label: 'BMI(>=25)',
            data: chartData2,
            backgroundColor: 'rgba(168, 50, 64, 0.2)',
            borderColor: 'rgb(168, 50, 64)',
            pointBackgroundColor: 'rgb(168, 50, 64)',
            pointBorderColor: '#fff',
            pointHoverBackgroundColor: '#fff',
            pointHoverBorderColor: 'rgb(168, 50, 64)'
        }]
    };

    if (chartType == 'bar') {
        const ctx1 = document.getElementById(id).getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'bar',
            data: data,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                }
            }
        });
    } else if (chartType == 'doughnut') {
        const ctx1 = document.getElementById(id).getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'doughnut',
            data: data3,
            options: {
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                },
            },
        });
    } else if (chartType == 'pie') {
        const ctx1 = document.getElementById(id).getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'pie',
            data: data3,
            options: {
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                }
            }
        });
    } else if (chartType == 'line') {
        const ctx1 = document.getElementById(id).getContext('2d');
        const myChart1 = new Chart(ctx1, {
            type: 'line',
            data: data2,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                layout: {
                    padding: 20
                },
                title: {
                    display: true,
                    text: header
                },
                tension: 0.4,
            }
        });
    } else if (chartType == 'radar') {
        const ctx2 = document.getElementById(id).getContext('2d');
        const myChart2 = new Chart(ctx2, {
            type: 'radar',
            data: data4,
            options: {
                scales: {
                    y: {
                        beginAtZero: true
                    }
                },
                legend: {
                    display: true,
                    position: 'bottom',
                },
                title: {
                    display: true,
                    text: header,
                },
                layout: {
                    padding: 20
                }
            }
        });
    }
}


$('#startDate1').datepicker({
    format: "mm-yyyy",
    viewMode: "months",
    minViewMode: "months"
});
$('#endDate1').datepicker({
    format: "mm-yyyy",
    viewMode: "months",
    minViewMode: "months"
});

function open_pdf() {
    html2canvas(document.getElementById("report_div"), {
        onrendered: function (canvas) {
            var img = canvas.toDataURL(); //image data of canvas
            // var doc = new jsPDF('p','pt','a2');
            var doc = new jsPDF('l', 'mm', [300, 350]);
            doc.addImage(img, 10, 10);
            doc.save('graph.pdf');
        }
    });
}

function printDiv(div) {
    // alert(div);
    html2canvas(document.getElementById(div), {
        onrendered: function (canvas) {
            var img = canvas.toDataURL(); //image data of canvas
            // var doc = new jsPDF('p','pt','a2');
            var doc = new jsPDF('l', 'mm', [300, 350]);
            doc.addImage(img, 10, 10);
            doc.save('graph.pdf');
        }
    });
}