﻿/*
*
*   Locks out certain browser versions based on parameters
*
*   Uses a jQuery Modal Dialog in order to lock the page
*
*   jQuery Dependencies:
*       ui.core.js
*       ui.draggable.js
*       ui.resizable.js 
*
*/

jQuery.browserlock = {

    Version: '0.0.1',
    options: {
        title: 'Browser Compatibility Warning',
        message: 'Your browser is not compatible with this page',
        browsers: {
            Firefox: 2,
            IE: 7,
            Opera: 9,
            Safari: 3
        }
    },
    activeBrowser: null,
    activeBrowserVer: null,
    browsVer: {
        Firefox: (navigator.userAgent.indexOf('Firefox') > -1) ? parseFloat(navigator.userAgent.match(/Firefox[\/\s](\d+)/)[1]) : false,
        IE: (jQuery.browser.msie) ? parseFloat(jQuery.browser.version) : false,
        Safari: (jQuery.browser.safari) ? parseFloat(jQuery.browser.version) : false,
        Opera: (jQuery.browser.opera) ? parseFloat(jQuery.browser.version) : false
    },

    init: function() {

        //debugger;

        //if the caller has supplied their own options...
        if (arguments[0] != undefined) {
            jQuery.browserlock.options = arguments[0];
        }

        jQuery.each(jQuery.browserlock.browsVer, function(x, y) {

            //debugger;
            
            if (y) {
                if (jQuery.browserlock.options.browsers[x] == undefined ||
                    jQuery.browserlock.options.browsers[x] == null) {
                    jQuery.browserlock.show();
                }
                else if (y < jQuery.browserlock.options.browsers[x]) {
                    jQuery.browserlock.activeBrowser = x;
                    jQuery.browserlock.activeBrowserVer = y;
                    jQuery.browserlock.show();
                }
            }
        });

    },

    show: function() {

        //debugger;

        elm = document.createElement('div');
        //elm.style.display = 'none';
        elm.id = 'browserlock';
        $('body').prepend(elm);

        message = $(document.createElement('span'));
        $('#browserlock').append(message);

        if (jQuery.browserlock.activeBrowser != null) {
            $(message).html(jQuery.browserlock.options.message +
                            '<br />Your Browser is ' + jQuery.browserlock.activeBrowser + ' ' + jQuery.browserlock.activeBrowserVer +
                            '<br />Minimum Required is ' + jQuery.browserlock.activeBrowser + ' ' + jQuery.browserlock.options.browsers[jQuery.browserlock.activeBrowser]);
        }
        else {
            $(message).html(jQuery.browserlock.options.message);
        }

        $('#browserlock').attr('title', jQuery.browserlock.options.title);
        $('#browserlock').css({
            'margin': 0,
            'padding': 0,
            'border': 0,
            'outline': 0,
            'line-height': 1.3,
            'text-decoration': 'none',
            'font-size': '100%',
            'list-style': 'none',
            'font-family': 'Arial, sans-serif',
            'font-size': '0.8em',
            'background': '#ffffff', // url(img/ffffff_40x100_textures_01_flat_0.png) 0 0 repeat-x;
            'color': '#222222',
            'border': '4px solid #dddddd',
            'position': 'relative'
        });

        $('#browserlock').dialog({
            //autoOpen: false,
            width: 400,
            height: 200,
            draggable: false,
            modal: true,
            resizable: false,
            overlay: {
                opacity: 1,
                background: "black"
            }
        });

        //$('#browserlock').dialog("open");

        $('.ui-dialog-titlebar-close').css('display', 'none');
        $('.ui-dialog-titlebar').css({
            'margin': 0,
            'padding': 5,
            'border': 0,
            'outline': 0,
            'line-height': 1.3,
            'text-decoration': 'none',
            'text-align': 'center',
            'font-size': '100%',
            'list-style': 'none',
            'font-family': 'Arial, sans-serif',
            'font-size': '1.0em',
            'background': '#dddddd', // url(img/ffffff_40x100_textures_01_flat_0.png) 0 0 repeat-x;
            'color': '#222222',
            //'border': '4px solid #dddddd',
            'position': 'relative'
        });
    }
}