/*
*$Id: browscap.js 47 2008-09-08 14:28:55Z vkarpov $
*/
PuskFramework.browsCap = new function()
{
    var n = window.navigator;
    var na = n.userAgent;

    function isFlashEnabled()
    {
        if(n.plugins && n.plugins["Shockwave Flash"]) {return true};
        try {new ActiveXObject('ShockwaveFlash.ShockwaveFlash');return true;} catch(e){};
        return false;
    }

    this.isIE = na.indexOf('MSIE') != -1;
    this.isOpera = !!window.opera;
    this.isSafari = na.indexOf('Safari') != -1;
    this.isMozilla = !this.isSafari && (na.indexOf("Gecko") != -1);
    this.isChrome = na.indexOf('Chrome') != -1;
    this.isWebkit = this.isSafari || this.isChrome
    this.appVer = 0;
    this.hasFlash = isFlashEnabled();

    switch(true)
    {
        case this.isIE:
        {
            var match = /MSIE\s(\d(?:\.\d?))/.exec(na);
            this.appName = 'MSIE';
            break;
        }
        case this.isOpera:
        {
            this.appVer = parseFloat(window.opera.version());
            this.appName = 'Opera';
            break;
        }
        case this.isMozilla:
        {
            var match = /(?:SeaMonkey|Firefox)\/(\d(?:\.\d?)).*$/i.exec(na);
            this.appName = 'Mozilla';
            break;
        }
        case this.isChrome:
        {
            var match = /Chrome\/(\d(?:\.\d?))/i.exec(na);
            this.appName = 'Chrome';
            break;
        }
        case this.isSafari:
        {
            var match = /Version\/([\d.]+) Safari\//.exec(na);
            this.appName = 'Safari';
            break;
        }
        default:
        {
            this.appName = na.appName;
            this.appVer = parseFloat(na.appVer) || 0;
            break;
        }
    }
    if (!this.appVer && match) this.appVer = match[1] ? (parseFloat(match[1]) || 0) : 0;

};
