$(function() {
    $('#mouserestTest')
        .bind('mouserest', function(event) {
            log('mouserestLog', 'mouserest 500ms');
        })
        .bind('mouserest', { delay: 1000 }, function(event) {
            log('mouserestLog', 'mouserest 1000ms');
        })
        .bind('mouserest', { delay: 1500 }, function(event) {
            log('mouserestLog', 'mouserest 1500ms');
        })
        .bind('mouserest', { delay: 2000 }, function(event) {
            log('mouserestLog', 'mouserest 2000ms');
        });
    
    $('#mouseremainoverTest')
        .bind('mouseremainover', function(event) {
            log('mouseremainoverLog', 'mouseremainover 500ms');
        })
        .bind('mouseremainover', { delay: 1000 }, function(event) {
            log('mouseremainoverLog', 'mouseremainover 1000ms');
        })
        .bind('mouseremainover', { delay: 1500 }, function(event) {
            log('mouseremainoverLog', 'mouseremainover 1500ms');
        })
        .bind('mouseremainover', { delay: 2000 }, function(event) {
            log('mouseremainoverLog', 'mouseremainover 2000ms');
        });
    
    $('#mouseremainupTest')
        .bind('mouseremainup', function(event) {
            log('mouseremainupLog', 'mouseremainup 500ms');
        })
        .bind('mouseremainup', { delay: 1000 }, function(event) {
            log('mouseremainupLog', 'mouseremainup 1000ms');
        })
        .bind('mouseremainup', { delay: 1500 }, function(event) {
            log('mouseremainupLog', 'mouseremainup 1500ms');
        })
        .bind('mouseremainup', { delay: 2000 }, function(event) {
            log('mouseremainupLog', 'mouseremainup 2000ms');
        });
    
    $('#mouseremaindownTest')
        .bind('mouseremaindown', function(event) {
            log('mouseremaindownLog', 'mouseremaindown 500ms');
        })
        .bind('mouseremaindown', { delay: 1000 }, function(event) {
            log('mouseremaindownLog', 'mouseremaindown 1000ms');
        })
        .bind('mouseremaindown', { delay: 1500 }, function(event) {
            log('mouseremaindownLog', 'mouseremaindown 1500ms');
        })
        .bind('mouseremaindown', { delay: 2000 }, function(event) {
            log('mouseremaindownLog', 'mouseremaindown 2000ms');
        });
    
    $('#mouseremainoutTest')
        .bind('mouseremainout', function(event) {
            log('mouseremainoutLog', 'mouseremainout 500ms');
        })
        .bind('mouseremainout', { delay: 1000 }, function(event) {
            log('mouseremainoutLog', 'mouseremainout 1000ms');
        })
        .bind('mouseremainout', { delay: 1500 }, function(event) {
            log('mouseremainoutLog', 'mouseremainout 1500ms');
        })
        .bind('mouseremainout', { delay: 2000 }, function(event) {
            log('mouseremainoutLog', 'mouseremainout 2000ms');
        });
    
    $('#keyremaindownTest')
        .bind('keyremaindown', function(event) {
            log('keyremaindownLog', 'keyremaindown 500ms');
        })
        .bind('keyremaindown', { delay: 1000 }, function(event) {
            log('keyremaindownLog', 'keyremaindown 1000ms');
        })
        .bind('keyremaindown', { delay: 1500 }, function(event) {
            log('keyremaindownLog', 'keyremaindown 1500ms');
        })
        .bind('keyremaindown', { delay: 2000 }, function(event) {
            log('keyremaindownLog', 'keyremaindown 2000ms');
        });
    
    $('#keyremainupTest')
        .bind('keyremainup', function(event) {
            log('keyremainupLog', 'keyremainup 500ms');
        })
        .bind('keyremainup', { delay: 1000 }, function(event) {
            log('keyremainupLog', 'keyremainup 1000ms');
        })
        .bind('keyremainup', { delay: 1500 }, function(event) {
            log('keyremainupLog', 'keyremainup 1500ms');
        })
        .bind('keyremainup', { delay: 2000 }, function(event) {
            log('keyremainupLog', 'keyremainup 2000ms');
        });
    
    $('#remainfocusedTest')
        .bind('remainfocused', function(event) {
            log('remainfocusedLog', 'remainfocused 500ms');
        })
        .bind('remainfocused', { delay: 1000 }, function(event) {
            log('remainfocusedLog', 'remainfocused 1000ms');
        })
        .bind('remainfocused', { delay: 1500 }, function(event) {
            log('remainfocusedLog', 'remainfocused 1500ms');
        })
        .bind('remainfocused', { delay: 2000 }, function(event) {
            log('remainfocusedLog', 'remainfocused 2000ms');
        });
    
    $('#remainblurredTest')
        .bind('remainblurred', function(event) {
            log('remainblurredLog', 'remainblurred 500ms');
        })
        .bind('remainblurred', { delay: 1000 }, function(event) {
            log('remainblurredLog', 'remainblurred 1000ms');
        })
        .bind('remainblurred', { delay: 1500 }, function(event) {
            log('remainblurredLog', 'remainblurred 1500ms');
        })
        .bind('remainblurred', { delay: 2000 }, function(event) {
            log('remainblurredLog', 'remainblurred 2000ms');
        });

    function log(id, msg) {
        $('#'+id)
            .append('<p>' + msg + '</p>')
            .scrollTop(999999);
    }
});
