﻿var BrowserDetect = {
    init: function() {
        this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
        this.version = this.searchVersion(navigator.userAgent)
			|| this.searchVersion(navigator.appVersion)
			|| "an unknown version";
        this.OS = this.searchString(this.dataOS) || "an unknown OS";
    },
    searchString: function(data) {
        for (var i = 0; i < data.length; i++) {
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = data[i].versionSearch || data[i].identity;
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
                return data[i].identity;
        }
    },
    searchVersion: function(dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(dataString.substring(index + this.versionSearchString.length + 1));
    },
    dataBrowser: [
		{
		    string: navigator.userAgent,
		    subString: "Chrome",
		    identity: "Chrome"
		},
		{ string: navigator.userAgent,
		    subString: "OmniWeb",
		    versionSearch: "OmniWeb/",
		    identity: "OmniWeb"
		},
		{
		    string: navigator.vendor,
		    subString: "Apple",
		    identity: "Safari",
		    versionSearch: "Version"
		},
		{
		    prop: window.opera,
		    identity: "Opera"
		},
		{
		    string: navigator.vendor,
		    subString: "iCab",
		    identity: "iCab"
		},
		{
		    string: navigator.vendor,
		    subString: "KDE",
		    identity: "Konqueror"
		},
		{
		    string: navigator.userAgent,
		    subString: "Firefox",
		    identity: "Firefox"
		},
		{
		    string: navigator.vendor,
		    subString: "Camino",
		    identity: "Camino"
		},
		{		// for newer Netscapes (6+)
		    string: navigator.userAgent,
		    subString: "Netscape",
		    identity: "Netscape"
		},
		{
		    string: navigator.userAgent,
		    subString: "MSIE",
		    identity: "Explorer",
		    versionSearch: "MSIE"
		},
		{
		    string: navigator.userAgent,
		    subString: "Gecko",
		    identity: "Mozilla",
		    versionSearch: "rv"
		},
		{ 		// for older Netscapes (4-)
		    string: navigator.userAgent,
		    subString: "Mozilla",
		    identity: "Netscape",
		    versionSearch: "Mozilla"
		}
	],
    dataOS: [
		{
		    string: navigator.platform,
		    subString: "Win",
		    identity: "Windows"
		},
		{
		    string: navigator.platform,
		    subString: "Mac",
		    identity: "Mac"
		},
		{
		    string: navigator.userAgent,
		    subString: "iPhone",
		    identity: "iPhone/iPod"
		},
		{
		    string: navigator.platform,
		    subString: "Linux",
		    identity: "Linux"
		}
	]

};
BrowserDetect.init();


var alertstring = BrowserDetect.browser + " " + BrowserDetect.version;
//alert(alertstring);

if (BrowserDetect.browser.indexOf('Explorer') > -1 && BrowserDetect.version < 7) {
    //we're dealing with an old and busted browser that will break with all our new hotness CSS styling.
    document.getElementById('DIV_BrowserAlert').style.display = "block"; //shows an alert
    document.getElementById('DIV_PageBackground').style.display = "none"; //hides the page background
    document.getElementById('DIV_PageBase').style.display = "none"; //hides the page background
    document.getElementById('DIV_ContentWrapper').style.backgroundColor = "#ffffff";
    document.getElementById('ManagementBar').style.display = "absolute"; //places the management bar properly
    document.getElementById('ManagementBar').style.top = "0px"; //places the management bar properly
    document.getElementById('ManagementBar').style.left = "0px;"; //places the management bar properly


    var supersleight = function() {
        var root = false;
        var applyPositioning = true;
        var shim = 'x.gif';
        var shim_pattern = /x\.gif$/i;
        var fnLoadPngs = function() {
            if (root) { root = document.getElementById(root); } else { root = document; }
            for (var i = root.all.length - 1, obj = null; (obj = root.all[i]); i--) {
                if (obj.currentStyle.backgroundImage.match(/\.png/i) !== null) { bg_fnFixPng(obj); }
                if (obj.tagName == 'IMG' && obj.src.match(/\.png$/i) !== null) { el_fnFixPng(obj); }
                if (applyPositioning && (obj.tagName == 'A' || obj.tagName == 'INPUT') && obj.style.position === '') { obj.style.position = 'relative'; }
            }
        }; var bg_fnFixPng = function(obj) {
            var mode = 'scale'; var bg = obj.currentStyle.backgroundImage; var src = bg.substring(5, bg.length - 2); if (obj.currentStyle.backgroundRepeat == 'no-repeat') { mode = 'crop'; }
            obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')"; obj.style.backgroundImage = 'url(' + shim + ')';
        }; var el_fnFixPng = function(img) { var src = img.src; img.style.width = img.width + "px"; img.style.height = img.height + "px"; img.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='scale')"; img.src = shim; }; var addLoadEvent = function(func) {
            var oldonload = window.onload; if (typeof window.onload != 'function') { window.onload = func; } else {
                window.onload = function() {
                    if (oldonload) { oldonload(); }
                    func();
                };
            }
        }; return { init: function() { addLoadEvent(fnLoadPngs); }, limitTo: function(el) { root = el; }, run: function() { fnLoadPngs(); } };
    } (); supersleight.init();
};

