jQuery(document).ready(function($) {
    
    if (BrowserDetect.getPlugins().indexOf('Flux Player') >= 0)
    {
        $('#dragster-mode').val('proxy');
    }
    if (BrowserDetect.getPlugins().indexOf('Unity Player') >= 0)
    {
        $('#dragster-mode').val('unity');
    }
    
    $('form.app-login').submit(function() {
        var app              = $(this).find(':input[name=application_id]').val();
        var osType           = BrowserDetect.os;
        var osVersion        = BrowserDetect.osVersion;
        var osRelease        = BrowserDetect.osRelease;
        var brType           = BrowserDetect.browser;
        var brVersion        = BrowserDetect.browserVersion;
        var availablePlugins = BrowserDetect.getPlugins();
        var errors           = [];
        
        if (osType != 'Windows') 
            errors.push(osType + ' is not supported');
        else if (osRelease < 5.0) 
            errors.push(osType + ' ' + osVersion + ' is not supported');
            
        if (brType != 'Firefox' && brType != 'Internet Explorer')
            errors.push(brType + ' is not supported');
        else if (brType == 'Firefox' && brVersion < 2)
            errors.push(brType + ' ' + brVersion + ' is not supported');
        else if (brType == 'Internet Explorer' && brVersion < 7)
            errors.push(brType + ' ' + brVersion + ' is not supported');
        
        if (app == 'dragster') 
        {
            // dragster requires Flux or Unity
            var mode = null;
            if (availablePlugins.indexOf('Flux Player') >= 0)
                mode = 'proxy';
            if ((availablePlugins.indexOf('Unity Web Player') >= 0) || 
                (availablePlugins.indexOf('Unity Player') >= 0))
                mode = 'unity';
                
            if (mode == null)
                errors.push('Missing required browser plugin');
            else
                $('#dragster-mode').val(mode);
        }
        else if (app == 'structures') 
        {
            // structures requires Unity
            if ((availablePlugins.indexOf('Unity Web Player') >= 0) || 
                (availablePlugins.indexOf('Unity Player') >= 0)) {
                mode = 'unity';
                $('#structures-mode').val(mode);
            } 
            else
                errors.push('Missing required browser plugin');
        }
        
        if (errors.length == 0)
        {
            return true;
        }
        else
        {
            $('#messages').html(errors.join("<br/>\n"))
            $('#requirements').show('slide', { direction: 'up' }, 500);
            return false;
        }
    });
    
});