// Browser, Screensize and Flash-Detection
///////////////////////////////////////////

// get browser function
function getBrowser()
{
    var appName = navigator.appName;
    var userAgent = navigator.userAgent;
    var browser = '';
    var version = '';
    
    if (userAgent.indexOf('MSIE ') > -1) {
        var version = userAgent.split("MSIE ");
        return 'Internet Explorer ' + version[1].substr(0, 3);
    
    } else if (appName.indexOf('Internet Explorer') > -1) {
        return 'Internet Explorer';
    
    } else if (userAgent.indexOf('Firefox') > -1 ) {
        var version = userAgent.split("Firefox/");
        return 'Firefox ' + version[1].substr(0, 3);
        
    } else if (userAgent.indexOf('Safari') > -1 ) {
        return 'Safari';
    
    } else if (userAgent.indexOf('Netscape') > -1 ) {
        return 'Netscape';
    
    } else if (userAgent.indexOf('Opera') > -1 ) {
        var version = userAgent.split("Opera/");
        return 'Opera ' + version[1].substr(0, 3);
    
    } else if (userAgent.indexOf('Gecko') > -1 ) {
        return 'Mozilla';
    
    } else {
        return 'undefined';
    }
}

// set cookie function
function setCookie(name, value, expires, path, domain, secure) 
{ 
    document.cookie = name + "=" + escape(value) + 
    ((expires == null) ? "" : "; expires=" + expires.toGMTString()) + 
    ((path == null) ? "" : "; path=" + path) + 
    ((domain == null) ? "" : "; domain=" + domain) + 
    ((secure == null) ? "" : "; secure");
}

// check cookie function
function checkCookie(session) 
{
    var name = 'setup';
    
    if (session) {
        var value = 'session';
        var expiration = null;
    } else {
        var value = 'cookie';
        var expiration = new Date();
        expiration.setTime(expiration.getTime() + (30*24*60*60*1000));
    }
    // set cookie   
    setCookie(name, value, expiration, "/");

    // check cookie
    var success = (document.cookie.indexOf(name + "=" + value) != -1) ? 'true' : '0';

    // display message 
    if (success == '0' && session) {
        document.write('Ihr Internet-Browser verweigert Session-Cookies...<br />Votre navigateur n\'accepte pas les session cookies...<br />Your browser does not accept session cookies...<br />');
    }

    // reset cookie
    document.cookie = name + '=; path=/; expires=Thu, 01-Jan-1970 00:00:01 GMT'; 

    return success;
}

// check flash version
function checkFlash() 
{
    // Flash - This script will test up to the following version.
    flash_versions = 20;
    
    // initialize variables and arrays
    var flash = new Object();
    flash.installed=false;
    flash.version='0.0';
    
    // dig through Netscape-compatible plug-ins first.
    if (navigator.plugins && navigator.plugins.length) {
        for (x=0; x < navigator.plugins.length; x++) {
            if (navigator.plugins[x].name.indexOf('Shockwave Flash') != -1) {
                flash.version = navigator.plugins[x].description.split('Shockwave Flash ')[1];
                flash.installed = true;
                break;
            }
        }
    }
    
    // then, dig through ActiveX-style plug-ins afterwards
    else if (window.ActiveXObject) {
        for (x = 2; x <= flash_versions; x++) {
            try {
                oFlash = eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash." + x + "');");
                if(oFlash) {
                    flash.installed = true;
                    flash.version = x + '.0';
                }
            }
            catch(e) {}
        }
    }
    
    // create sniffing variables in the following style: flash.ver[x]
    flash.ver = Array();
    for(i = 4; i <= flash_versions; i++) {
        eval("flash.ver[" + i + "] = (flash.installed && parseInt(flash.version) >= " + i + ") ? true : false;");
    }

    // return flash version
    if (flash.installed) {
        return flash.version.substr(0, 3);
    }
    else {
        return '0';
    }
}

// check ajax function
function createRequestObject() 
{
    var ro;
    try {
      window.XMLHttpRequest ? new XMLHttpRequest():
                new ActiveXObject("Microsoft.XMLHTTP");
                ro = 'true';

    }
    catch (e) {
        ro = '0';
    }
    return ro;
}

// get screen size
function getScreenSize()
{
    if (screen.width >= 10 && screen.height >= 10) {
        return screen.width + 'x' + screen.height;
    } else {
        return '0';
    }
}


// initialize setup
var setup = '';

// get browser and version
setup = setup + getBrowser();

// Cookiecheck
//if Sessions or Cookies are disabled on client's browser
if (checkCookie(false)) {
    setup = setup + '--' + checkCookie(false);
} else {
    document.write('<div div="alert_cookie">Ihr Internet-Browser verweigert Cookies...<br />Votre navigateur n\'accepte pas les cookies...<br />Your browser does not accept cookies...<hr /></div>');
}

// stylesheet supported
(document.styleSheets) ? setup = setup + '--true' : setup = setup + '--0';

// get flash version
setup = setup + '--' + checkFlash();

// check ajax
setup = setup + '--' + createRequestObject();

setup = setup + '--' + getScreenSize();


// if session cookie is enabled
if (checkCookie(true) == 'true') {
    // save setup data in cookie
    setCookie('setup', setup, null, '/');
    
    // refresh browser
    document.location.href = document.location.href;
}
