<!DOCTYPE HTML>

<html>
    <head>
        <style type="text/css">
            body {
                margin: 0;
            }

            div {
                box-sizing: border-box;
            }
            
            .container {
                display: inline-block;
                position: relative;
                width: 100px;
                height: 800px;
                border: 1px solid black;
                margin: 0 10px;
                padding: 20px;
            }
            
            .container div {
                position: absolute;
                top: 0;
                left: 0;
                width: 100%;
                height: 100%;
            }
        </style>
        <script src="resources/border-radius-helpers.js"></script>
        <script>
            const borderWidth = 20;
            
            const corners = [
                'top-left',
                'top-right',
                'bottom-left',
                'bottom-right'
            ];

            const clipPaths = [
                'inset(60px 10px 640px 60px)',
                'inset(60px 60px 640px 10px)',
                'inset(640px 10px 60px 60px)',
                'inset(640px 60px 60px 10px)'
            ];

            var colors = [
                'green',
                'blue'
            ];

            var radii = '100% 100%';
            
            function doSetup()
            {
                for (var index in corners)
                    document.body.appendChild(createContainer(corners[index], colors, clipPaths[index], radii));
            }

            window.addEventListener('load', doSetup, false);
        </script>
    </head>
    <body>
    </body>
</html>
