<!DOCTYPE html>
<html>
    <head>
        <title id='desc'> WheelEvent: feature detection with hasFeature() </title>
        <script type="text/javascript">
            var PassTest = function()
            {
                document.getElementById("testresult").firstChild.data = "PASS";
            }

            var FailTest = function()
            {
                document.getElementById("testresult").firstChild.data = "FAIL";
            }

            window.onload = function()
            {
                try
                {
                    var features = ["WheelEvent", "Events.WheelEvent", "Events.wheel"];
                    var versions = ["3.0", "", null];
                    var TestResult = true;
                    var HasFeature = false;

                    for (var i=0; i<features.length; i++)
                    {
                        for (var j=0; j<versions.length; j++)
                        {
                            HasFeature = document.implementation.hasFeature(features[i], versions[j]);
                            TestResult = HasFeature && TestResult;
                        }
                    }

                    if (HasFeature && TestResult)
                    {
                        PassTest();
                    }
                    else
                    {
                        FailTest();
                    }
                }
                catch(ex)
                {
                    FailTest();
                }
            }
        </script>
    </head>
    <body>
        <h3>DOM Events</h3>
        <h4>
            Test Description: WheelEvent - feature support detection using DOMImplementation.hasFeature() method
        </h4>

        <p>Test passes if the word "PASS" appears below.</p>
        <div>Test result: </div>
        <div id='testresult'>FAIL</div>
    </body>
</html>