/*************************************************** vi fsp script *****/
/************************** Copyright (c) 2009 virtual identity AG *****/
/***********************************************************************/
/************************************************** initial script *****/
/***********************************************************************/
/************************************** author virtual identity AG *****/
/* $LastChangedDate: 2010-06-02 17:15:12 +0200 (Mi, 02 Jun 2010) $ *****/

/***********************************************************************/
/* START: initialize vi namespace */

var vi = {
    version: "1.0"
};

/* END: initialize vi namespace */
/***********************************************************************/
/* START: browser detection                                            */

if (vi.Info !== undefined) {
    if (window.console && window.console.log) 
        window.console.log(vi.Info, "[Info] variable collision: Info already defined");
}

vi.Info = new function(){

    var userAgent = navigator.userAgent.toLowerCase();
    
    // check user agent
    function is(str){
        return userAgent.indexOf(str) > -1;
    }
    
    // version detection
    function version(){
        var versionString = "";
        var specificOffset = 0;
        var specificLength = 1;
        
        if (b.isIE) {
            versionString = "msie";
            specificOffset = 1;
        }
        if (b.isFirefox) {
            versionString = "firefox/";
            specificLength = 3;
        }
        if (b.isSafari) {
            versionString = "version/";
        } // note: detects only safari 3+
        if (b.isChrome) {
            versionString = "chrome/";
        }
        if (b.isOpera) {
            versionString = "version/";
            specificLength = 2;
            // for Opera version < 10
            if (userAgent.indexOf(versionString) == -1) {
                versionString = "opera/";
                specificLength = 1;
            }
        }
        
        return parseFloat((userAgent.substr(userAgent.indexOf(versionString) + versionString.length + specificOffset, specificLength)));
    }
    
    // browser detection
    var b = {};
    b.isOpera = typeof window.opera != "undefined";
    b.isIE = is("msie") && b.isOpera == false;
    b.isWebkit = is("webkit");
    b.isChrome = is("chrome");
    b.isSafari = is("safari") && (b.isChrome == false) && is("version"); // note: detects only safari 3+
    b.isMozilla = is("gecko") && b.isWebkit == false && b.isSafari == false && b.isChrome == false && b.isOpera == false;
    b.isFirefox = b.isMozilla == true && is("firefox");
    b.isKonqueror = navigator.product != null && navigator.product.toLowerCase().indexOf("konqueror") > -1;
    
    this.browser = b;
    
    //browser version initialization
    b.version = version();
    if (b.version == 0 || isNaN(b.version)) {
        b.version = false;
    }
    
    // backward compatibility, use b.version to detect browser version in new scripts
    b.isSafari3 = b.isSafari && (b.version == 3);
    b.isSafariGte3 = b.isSafari && (b.version >= 3);
    b.isIE7 = b.isIE && (b.version == 7);
    b.isIEpre8 = b.isIE && (b.version < 8);
    b.isIEpre7 = b.isIE && (b.version < 7);
    b.isIEpre6 = b.isIE && (b.version < 6);
    
    //OS detection
    var os = {};
    os.isLinux = (navigator.platform.indexOf("Linux") == 0), os.isMac = (navigator.platform.indexOf("Mac") == 0), os.isWin = (navigator.platform.indexOf("Win") == 0)
    this.os = os;
    
    // windows version detection >> 5.0=2000 5.1=XP, 5.2=2003, 6.0=Vista, 6.1=Win7
    if (this.os.isWin) {
        this.os.winVersion = parseFloat(userAgent.substr(userAgent.indexOf("nt") + 3, 3));
    }
    
    //has transparency support detection
    this.hasTransparencySupport = true;
    if (this.os.isLinux || this.browser.isKonqueror || (this.os.isMac && !this.browser.isSafariGte3)) {
        this.hasTransparencySupport = false;
    }
    
    //CSS classes
    function setCss(){
        var h = document.getElementsByTagName("html")[0], classes = [(b.isIE ? ("ie ie" + b.version) : b.isFirefox ? ("firefox firefox" + (b.version.toString().replace(/\./ig, ""))) : b.isChrome ? ("chrome chrome" + b.version) : b.isSafari ? ("safari safari" + b.version) : b.isOpera ? ("opera opera" + b.version) : ""), (b.isMozilla ? "gecko" : b.isWebkit ? "webkit" : ""), (os.isWin ? "win" : os.isMac ? "mac" : os.isLinux ? "linux" : ""), "js"];
        h.className += h.className == "" ? classes.join(" ") : " " + classes.join(" ");
        return classes;
    }
    
    setCss();
    
    this.hasFlash = false; // flash detection in vendors/swfobject.js
}

/* END: browser detection                                              */
/***********************************************************************/
/* START: browser dependent configuration */

//Fix Flickering Background Images
if (window.createPopup && document.compatMode && document.compatMode == "CSS1Compat" && !window.XMLHttpRequest) {
    try {
        document.execCommand("BackgroundImageCache", false, true);
    } 
    catch (e) {
    }
}

/* END: browser dependent configuration */
/***********************************************************************/

