﻿// ---------------------------------------------------------------------
// Utilisé pour détecter le navigateur et l'OS de l'utilisateur
// ---------------------------------------------------------------------

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: "OmniWeb",
	    versionSearch: "OmniWeb/",
	    identity: "OmniWeb"
    },
    {
	    string: navigator.vendor,
	    subString: "Apple",
	    identity: "Safari2"
    },
    {
        // TODO
	    string: navigator.vendor,
	    subString: "Apple",
	    identity: "Safari3"
    },
    {
	    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 7",
	    identity: "Explorer7",
	    versionSearch: "MSIE 7"
    },
    {
	    string: navigator.userAgent,
	    subString: "MSIE 6",
	    identity: "Explorer6",
	    versionSearch: "MSIE 6"
    },
    {
	    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.platform,
	    subString: "Linux",
	    identity: "Linux"
    }
]

};
BrowserDetect.init();


