

// ===================================================================================
//  js_browserdetect
// ===================================================================================
// PLUGIN FRAMEWORK, Version 0.5; Copyright (c) 2006 Matthias Platzer <matthias@knallgrau.at>; http://www.knallgrau.code/prototype/plugins_js



/**
 * SWFObject v1.4.4: Flash Player detection and embed - http://blog.deconcept.com/swfobject/
 *
 * SWFObject is (c) 2006 Geoff Stearns and is released under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 *
 * **SWFObject is the SWF embed script formerly known as FlashObject. The name was changed for
 *   legal reasons.
 */
if(typeof deconcept == "undefined") var deconcept = new Object();
if(typeof deconcept.util == "undefined") deconcept.util = new Object();
if(typeof deconcept.SWFObjectUtil == "undefined") deconcept.SWFObjectUtil = new Object();
deconcept.SWFObject = function(swf, id, w, h, ver, c, useExpressInstall, quality, xiRedirectUrl, redirectUrl, detectKey){
	if (!document.getElementById) { return; }
	this.DETECT_KEY = detectKey ? detectKey : 'detectflash';
	this.skipDetect = deconcept.util.getRequestParameter(this.DETECT_KEY);
	this.params = new Object();
	this.variables = new Object();
	this.attributes = new Array();
	if(swf) { this.setAttribute('swf', swf); }
	if(id) { this.setAttribute('id', id); }
	if(w) { this.setAttribute('width', w); }
	if(h) { this.setAttribute('height', h); }
	if(ver) { this.setAttribute('version', new deconcept.PlayerVersion(ver.toString().split("."))); }
	this.installedVer = deconcept.SWFObjectUtil.getPlayerVersion();
	if(c) { this.addParam('bgcolor', c); }
	var q = quality ? quality : 'high';
	this.addParam('quality', q);
	this.setAttribute('useExpressInstall', useExpressInstall);
	this.setAttribute('doExpressInstall', false);
	var xir = (xiRedirectUrl) ? xiRedirectUrl : window.location;
	this.setAttribute('xiRedirectUrl', xir);
	this.setAttribute('redirectUrl', '');
	if(redirectUrl) { this.setAttribute('redirectUrl', redirectUrl); }
}
deconcept.SWFObject.prototype = {
	setAttribute: function(name, value){
		this.attributes[name] = value;
	},
	getAttribute: function(name){
		return this.attributes[name];
	},
	addParam: function(name, value){
		this.params[name] = value;
	},
	getParams: function(){
		return this.params;
	},
	addVariable: function(name, value){
		this.variables[name] = value;
	},
	getVariable: function(name){
		return this.variables[name];
	},
	getVariables: function(){
		return this.variables;
	},
	getVariablePairs: function(){
		var variablePairs = new Array();
		var key;
		var variables = this.getVariables();
		for(key in variables){
			variablePairs.push(key +"="+ variables[key]);
		}
		return variablePairs;
	},
	getSWFHTML: function() {
		var swfNode = "";
		if (navigator.plugins && navigator.mimeTypes && navigator.mimeTypes.length) { // netscape plugin architecture
			if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "PlugIn"); }
			swfNode = '<embed type="application/x-shockwave-flash" src="'+ this.getAttribute('swf') +'" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'"';
			swfNode += ' id="'+ this.getAttribute('id') +'" name="'+ this.getAttribute('id') +'" ';
			var params = this.getParams();
			 for(var key in params){ swfNode += [key] +'="'+ params[key] +'" '; }
			var pairs = this.getVariablePairs().join("&");
			 if (pairs.length > 0){ swfNode += 'flashvars="'+ pairs +'"'; }
			swfNode += '/>';
		} else { // PC IE
			if (this.getAttribute("doExpressInstall")) { this.addVariable("MMplayerType", "ActiveX"); }
			swfNode = '<object id="'+ this.getAttribute('id') +'" classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" width="'+ this.getAttribute('width') +'" height="'+ this.getAttribute('height') +'">';
			swfNode += '<param name="movie" value="'+ this.getAttribute('swf') +'" />';
			var params = this.getParams();
			for(var key in params) {
			 swfNode += '<param name="'+ key +'" value="'+ params[key] +'" />';
			}
			var pairs = this.getVariablePairs().join("&");
			if(pairs.length > 0) {swfNode += '<param name="flashvars" value="'+ pairs +'" />';}
			swfNode += "</object>";
		}
		return swfNode;
	},
	write: function(elementId){
		if(this.getAttribute('useExpressInstall')) {
			// check to see if we need to do an express install
			var expressInstallReqVer = new deconcept.PlayerVersion([6,0,65]);
			if (this.installedVer.versionIsValid(expressInstallReqVer) && !this.installedVer.versionIsValid(this.getAttribute('version'))) {
				this.setAttribute('doExpressInstall', true);
				this.addVariable("MMredirectURL", escape(this.getAttribute('xiRedirectUrl')));
				document.title = document.title.slice(0, 47) + " - Flash Player Installation";
				this.addVariable("MMdoctitle", document.title);
			}
		}
		if(this.skipDetect || this.getAttribute('doExpressInstall') || this.installedVer.versionIsValid(this.getAttribute('version'))){
			var n = (typeof elementId == 'string') ? document.getElementById(elementId) : elementId;
			n.innerHTML = this.getSWFHTML();
			return true;
		}else{
			if(this.getAttribute('redirectUrl') != "") {
				document.location.replace(this.getAttribute('redirectUrl'));
			}
		}
		return false;
	}
}

/* ---- detection functions ---- */
deconcept.SWFObjectUtil.getPlayerVersion = function(){
	var PlayerVersion = new deconcept.PlayerVersion([0,0,0]);
	if(navigator.plugins && navigator.mimeTypes.length){
		var x = navigator.plugins["Shockwave Flash"];
		if(x && x.description) {
			PlayerVersion = new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/, "").replace(/(\s+r|\s+b[0-9]+)/, ".").split("."));
		}
	}else{
		// do minor version lookup in IE, but avoid fp6 crashing issues
		// see http://blog.deconcept.com/2006/01/11/getvariable-setvariable-crash-internet-explorer-flash-6/
		try{
			var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
		}catch(e){
			try {
				var axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
				PlayerVersion = new deconcept.PlayerVersion([6,0,21]);
				axo.AllowScriptAccess = "always"; // throws if player version < 6.0.47 (thanks to Michael Williams @ Adobe for this code)
			} catch(e) {
				if (PlayerVersion.major == 6) {
					return PlayerVersion;
				}
			}
			try {
				axo = new ActiveXObject("ShockwaveFlash.ShockwaveFlash");
			} catch(e) {}
		}
		if (axo != null) {
			PlayerVersion = new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));
		}
	}
	return PlayerVersion;
}
deconcept.PlayerVersion = function(arrVersion){
	this.major = arrVersion[0] != null ? parseInt(arrVersion[0]) : 0;
	this.minor = arrVersion[1] != null ? parseInt(arrVersion[1]) : 0;
	this.rev = arrVersion[2] != null ? parseInt(arrVersion[2]) : 0;
}
deconcept.PlayerVersion.prototype.versionIsValid = function(fv){
	if(this.major < fv.major) return false;
	if(this.major > fv.major) return true;
	if(this.minor < fv.minor) return false;
	if(this.minor > fv.minor) return true;
	if(this.rev < fv.rev) return false;
	return true;
}
/* ---- get value of query string param ---- */
deconcept.util = {
	getRequestParameter: function(param) {
		var q = document.location.search || document.location.hash;
		if(q) {
			var pairs = q.substring(1).split("&");
			for (var i=0; i < pairs.length; i++) {
				if (pairs[i].substring(0, pairs[i].indexOf("=")) == param) {
					return pairs[i].substring((pairs[i].indexOf("=")+1));
				}
			}
		}
		return "";
	}
}

/* add Array.push if needed (ie5) */
if (Array.prototype.push == null) { Array.prototype.push = function(item) { this[this.length] = item; return this.length; }}

/* add some aliases for ease of use/backwards compatibility */
var getQueryParamValue = deconcept.util.getRequestParameter;
var FlashObject = deconcept.SWFObject; // for legacy support
var SWFObject = deconcept.SWFObject;


// ===================================================================================

var Plugin;
var browser = null;
var geber_GlobalBrowser = null;

function geber_getBrowser() 
{
    if (geber_GlobalBrowser != null && geber_GlobalBrowser.initialised != null && geber_GlobalBrowser.initialised)
        return geber_GlobalBrowser ;

   geber_GlobalBrowser = new Object();
   geber_GlobalBrowser.pageIsLoaded = false;
   geber_GlobalBrowser.isPageLoaded = function()
   {
       return (typeof(this.pageIsLoaded) != 'undefined' && this.pageIsLoaded);
   }
   geber_GlobalBrowser.setPageIsLoaded = function(isLoaded)
   {
       this.pageIsLoaded = (isLoaded != null && isLoaded) ? true : false;
   }


// the script is based on the JavaScript Browser Sniffer by
// Eric Krok, Andy King, Michel Plungjan Jan. 31, 2002
// see http://www.webreference.com/ for more information
//
// This program is free software; you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation; either version 2 of the License, or
//  (at your option) any later version.
//

    // convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();

    // *** BROWSER VERSION ***
    var is_minor = parseFloat(appVer);
    var is_major = parseInt(is_minor);

    var is_opera = (agt.indexOf("opera") != -1);
    var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
    var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
    var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
    var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
    var is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1); // new 020128- abk
    var is_opera7 = (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1); // new 021205- dmr
    var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
    var is_opera6up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5); // new020128
    var is_opera7up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5 && !is_opera6); // new021205 -- dmr

    // Note: On IE, start of appVersion return 3 or 4
    // which supposedly is the version of Netscape it is compatible with.
    // So we look for the real version further on in the string
    // And on Mac IE5+, we look for is_minor in the ua; since 
    // it appears to be more accurate than appVersion - 06/17/2004

    var is_mac = (agt.indexOf("mac")!=-1);
    var iePos  = appVer.indexOf('msie');
    if (iePos !=-1) {
       if(is_mac) {
           var iePos = agt.indexOf('msie');
           is_minor = parseFloat(agt.substring(iePos+5,agt.indexOf(';',iePos)));
       }
       else is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)));
       is_major = parseInt(is_minor);
    }

    // ditto Konqueror
                                      
    var is_konq = false;
    var kqPos   = agt.indexOf('konqueror');
    if (kqPos !=-1) {                 
       is_konq  = true;
       is_minor = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));
       is_major = parseInt(is_minor);
    }                                 

    var is_getElementById   = (document.getElementById) ? "true" : "false"; // 001121-abk
    var is_getElementsByTagName = (document.getElementsByTagName) ? "true" : "false"; // 001127-abk
    var is_documentElement = (document.documentElement) ? "true" : "false"; // 001121-abk

    var is_safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
    var is_khtml  = (is_safari || is_konq);

    var is_gecko = ((!is_khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
    var is_gver  = 0;
    if (is_gecko) is_gver=navigator.productSub;

    var is_fb = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                 (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                 (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                 (is_gecko) && (navigator.vendor=="Firebird"));
    var is_fx = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                 (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                 (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                 (is_gecko) && ((navigator.vendor=="Firefox")||(agt.indexOf('firefox')!=-1)));
    var is_moz   = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                    (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                    (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                    (is_gecko) && (!is_fb) && (!is_fx) &&
                    ((navigator.vendor=="")||(navigator.vendor=="Mozilla")||(navigator.vendor=="Debian")));
    if ((is_moz)||(is_fb)||(is_fx)) {  // 032504 - dmr
       var is_moz_ver = (navigator.vendorSub)?navigator.vendorSub:0;
       if(is_fx&&!is_moz_ver) {
           is_moz_ver = agt.indexOf('firefox/');
           is_moz_ver = agt.substring(is_moz_ver+8);
           is_moz_ver = parseFloat(is_moz_ver);
       }
       if(!(is_moz_ver)) {
           is_moz_ver = agt.indexOf('rv:');
           is_moz_ver = agt.substring(is_moz_ver+3);
           is_paren   = is_moz_ver.indexOf(')');
           is_moz_ver = is_moz_ver.substring(0,is_paren);
       }
       is_minor = is_moz_ver;
       is_major = parseInt(is_moz_ver);
    }
   var is_fb_ver = is_moz_ver;
   var is_fx_ver = is_moz_ver;

    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)
                && (!is_khtml) && (!(is_moz)) && (!is_fb) && (!is_fx));

    // Netscape6 is mozilla/5 + Netscape6/6.0!!!
    // Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20001108 Netscape6/6.0
    // Changed this to use navigator.vendor/vendorSub - dmr 060502   
    // var nav6Pos = agt.indexOf('netscape6');
    // if (nav6Pos !=-1) {
    if ((navigator.vendor)&&
        ((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape"))&&
        (is_nav)) {
       is_major = parseInt(navigator.vendorSub);
       // here we need is_minor as a valid float for testing. We'll
       // revert to the actual content before printing the result. 
       is_minor = parseFloat(navigator.vendorSub);
    }

    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && is_minor >= 4);  // changed to is_minor for
                                                // consistency - dmr, 011001
    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );

    var is_nav6   = (is_nav && is_major==6);    // new 010118 mhp
    var is_nav6up = (is_nav && is_minor >= 6); // new 010118 mhp

    var is_nav5   = (is_nav && is_major == 5 && !is_nav6); // checked for ns6
    var is_nav5up = (is_nav && is_minor >= 5);

    var is_nav7   = (is_nav && is_major == 7);
    var is_nav7up = (is_nav && is_minor >= 7);

    var is_nav8   = (is_nav && is_major == 8);
    var is_nav8up = (is_nav && is_minor >= 8);

    var is_ie   = ((iePos!=-1) && (!is_opera) && (!is_khtml));
    var is_ie3  = (is_ie && (is_major < 4));

    var is_ie4   = (is_ie && is_major == 4);
    var is_ie4up = (is_ie && is_minor >= 4);
    var is_ie5   = (is_ie && is_major == 5);
    var is_ie5up = (is_ie && is_minor >= 5);
    
    var is_ie5_5  = (is_ie && (agt.indexOf("msie 5.5") !=-1)); // 020128 new - abk
    var is_ie5_5up =(is_ie && is_minor >= 5.5);                // 020128 new - abk
	
    var is_ie6   = (is_ie && is_major == 6);
    var is_ie6up = (is_ie && is_minor >= 6);

    var is_ie7   = (is_ie && is_major == 7);
    var is_ie7up = (is_ie && is_minor >= 7);

// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
    // or if this is the first browser window opened.  Thus the
    // variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.

    var is_aol   = (agt.indexOf("aol") != -1);
    var is_aol3  = (is_aol && is_ie3);
    var is_aol4  = (is_aol && is_ie4);
    var is_aol5  = (agt.indexOf("aol 5") != -1);
    var is_aol6  = (agt.indexOf("aol 6") != -1);
    var is_aol7  = ((agt.indexOf("aol 7")!=-1) || (agt.indexOf("aol7")!=-1));
    var is_aol8  = ((agt.indexOf("aol 8")!=-1) || (agt.indexOf("aol8")!=-1));

    var is_webtv = (agt.indexOf("webtv") != -1);
    
    // new 020128 - abk
    
    var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 
    var is_AOLTV = is_TVNavigator;

    var is_hotjava = (agt.indexOf("hotjava") != -1);
    var is_hotjava3 = (is_hotjava && (is_major == 3));
    var is_hotjava3up = (is_hotjava && (is_major >= 3));

    // end new
	
    // *** JAVASCRIPT VERSION CHECK ***
    // Useful to workaround Nav3 bug in which Nav3
    // loads <SCRIPT LANGUAGE="JavaScript1.2">.
    // updated 020131 by dragle
    var is_js = 0.0;
    if (is_nav2 || is_ie3) is_js = 1.0;
    else if (is_nav3) is_js = 1.1;
    else if ((is_opera5)||(is_opera6)) is_js = 1.3; // 020214 - dmr
    else if (is_opera7up) is_js = 1.5; // 031010 - dmr
    else if (is_khtml) is_js = 1.5;   // 030110 - dmr
    else if (is_opera) is_js = 1.1;
    else if ((is_nav4 && (is_minor <= 4.05)) || is_ie4) is_js = 1.2;
    else if ((is_nav4 && (is_minor > 4.05)) || is_ie5) is_js = 1.3;
    else if (is_nav5 && !(is_nav6)) is_js = 1.4;
    else if (is_hotjava3up) is_js = 1.4; // new 020128 - abk
    else if (is_nav6up) is_js = 1.5;

    // NOTE: In the future, update this code when newer versions of JS
    // are released. For now, we try to provide some upward compatibility
    // so that future versions of Nav and IE will show they are at
    // *least* JS 1.x capable. Always check for JS version compatibility
    // with > or >=.

    else if (is_nav && (is_major > 5)) is_js = 1.4;
    else if (is_ie && (is_major > 5)) is_js = 1.3;
    else if (is_moz) is_js = 1.5;
    else if (is_fb||is_fx) is_js = 1.5; // 032504 - dmr
    
    // what about ie6 and ie6up for js version? abk
    
    // HACK: no idea for other browsers; always check for JS version 
    // with > or >=
    else is_js = 0.0;
    // HACK FOR IE5 MAC = js vers = 1.4 (if put inside if/else jumps out at 1.3)
    if ((agt.indexOf("mac")!=-1) && is_ie5up) is_js = 1.4; // 020128 - abk
    
    // Done with is_minor testing; revert to real for N6/7
    if (is_nav6up) {
       is_minor = navigator.vendorSub;
    }

    // *** PLATFORM ***
    var is_win   = ( (agt.indexOf("win")!=-1) || (agt.indexOf("16bit")!=-1) );
    // NOTE: On Opera 3.0, the userAgent string includes "Windows 95/NT4" on all
    //        Win32, so you can't distinguish between Win95 and WinNT.
    var is_win95 = ((agt.indexOf("win95")!=-1) || (agt.indexOf("windows 95")!=-1));

    // is this a 16 bit compiled version?
    var is_win16 = ((agt.indexOf("win16")!=-1) ||
               (agt.indexOf("16bit")!=-1) || (agt.indexOf("windows 3.1")!=-1) ||
               (agt.indexOf("windows 16-bit")!=-1) );

    var is_win31 = ((agt.indexOf("windows 3.1")!=-1) || (agt.indexOf("win16")!=-1) ||
                    (agt.indexOf("windows 16-bit")!=-1));
	
	var is_winme = ((agt.indexOf("win 9x 4.90")!=-1));    // new 020128 - abk
    var is_win2k = ((agt.indexOf("windows nt 5.0")!=-1) || (agt.indexOf("windows 2000")!=-1)); // 020214 - dmr
    var is_winxp = ((agt.indexOf("windows nt 5.1")!=-1) || (agt.indexOf("windows xp")!=-1)); // 020214 - dmr

    // NOTE: Reliable detection of Win98 may not be possible. It appears that:
    //       - On Nav 4.x and before you'll get plain "Windows" in userAgent.
    //       - On Mercury client, the 32-bit version will return "Win98", but
    //         the 16-bit version running on Win98 will still return "Win95".
    var is_win98 = ((agt.indexOf("win98")!=-1) || (agt.indexOf("windows 98")!=-1));
    var is_winnt = ((agt.indexOf("winnt")!=-1) || (agt.indexOf("windows nt")!=-1));
    var is_win32 = (is_win95 || is_winnt || is_win98 ||
                    ((is_major >= 4) && (navigator.platform == "Win32")) ||
                    (agt.indexOf("win32")!=-1) || (agt.indexOf("32bit")!=-1));

    var is_os2   = ((agt.indexOf("os/2")!=-1) ||
                    (navigator.appVersion.indexOf("OS/2")!=-1) ||
                    (agt.indexOf("ibm-webexplorer")!=-1));

    var is_mac    = (agt.indexOf("mac")!=-1);
    if (is_mac) { is_win = !is_mac; } // dmr - 06/20/2002
    var is_mac68k = (is_mac && ((agt.indexOf("68k")!=-1) ||
                               (agt.indexOf("68000")!=-1)));
    var is_macppc = (is_mac && ((agt.indexOf("ppc")!=-1) ||
                                (agt.indexOf("powerpc")!=-1)));

    var is_sun   = (agt.indexOf("sunos")!=-1);
    var is_sun4  = (agt.indexOf("sunos 4")!=-1);
    var is_sun5  = (agt.indexOf("sunos 5")!=-1);
    var is_suni86= (is_sun && (agt.indexOf("i86")!=-1));
    var is_irix  = (agt.indexOf("irix") !=-1);    // SGI
    var is_irix5 = (agt.indexOf("irix 5") !=-1);
    var is_irix6 = ((agt.indexOf("irix 6") !=-1) || (agt.indexOf("irix6") !=-1));
    var is_hpux  = (agt.indexOf("hp-ux")!=-1);
    var is_hpux9 = (is_hpux && (agt.indexOf("09.")!=-1));
    var is_hpux10= (is_hpux && (agt.indexOf("10.")!=-1));
    var is_aix   = (agt.indexOf("aix") !=-1);      // IBM
    var is_aix1  = (agt.indexOf("aix 1") !=-1);
    var is_aix2  = (agt.indexOf("aix 2") !=-1);
    var is_aix3  = (agt.indexOf("aix 3") !=-1);
    var is_aix4  = (agt.indexOf("aix 4") !=-1);
    var is_linux = (agt.indexOf("inux")!=-1);
    var is_sco   = (agt.indexOf("sco")!=-1) || (agt.indexOf("unix_sv")!=-1);
    var is_unixware = (agt.indexOf("unix_system_v")!=-1);
    var is_mpras    = (agt.indexOf("ncr")!=-1);
    var is_reliant  = (agt.indexOf("reliantunix")!=-1);
    var is_dec   = ((agt.indexOf("dec")!=-1) || (agt.indexOf("osf1")!=-1) ||
           (agt.indexOf("dec_alpha")!=-1) || (agt.indexOf("alphaserver")!=-1) ||
           (agt.indexOf("ultrix")!=-1) || (agt.indexOf("alphastation")!=-1));
    var is_sinix = (agt.indexOf("sinix")!=-1);
    var is_freebsd = (agt.indexOf("freebsd")!=-1);
    var is_bsd = (agt.indexOf("bsd")!=-1);
    var is_unix  = ((agt.indexOf("x11")!=-1) || is_sun || is_irix || is_hpux ||
                 is_sco ||is_unixware || is_mpras || is_reliant ||
                 is_dec || is_sinix || is_aix || is_linux || is_bsd || is_freebsd);

    var is_vms   = ((agt.indexOf("vax")!=-1) || (agt.indexOf("openvms")!=-1));
// additional checks, abk
	var is_anchors = (document.anchors) ? "true":"false";
	var is_regexp = (window.RegExp) ? "true":"false";
	var is_option = (window.Option) ? "true":"false";
	var is_all = (document.all) ? "true":"false";
// cookies - 990624 - abk
	document.cookie = "cookies=true";
	var is_cookie = (document.cookie) ? "true" : "false";
	var is_images = (document.images) ? "true":"false";
	var is_layers = (document.layers) ? "true":"false"; // gecko m7 bug?
// new doc obj tests 990624-abk
	var is_forms = (document.forms) ? "true" : "false";
	var is_links = (document.links) ? "true" : "false";
	var is_frames = (window.frames) ? "true" : "false";
	var is_screen = (window.screen) ? "true" : "false";

// java
	var is_java = (navigator.javaEnabled() ? true : false);

   


   geber_GlobalBrowser.minor = is_minor;
   geber_GlobalBrowser.major = is_major;

   geber_GlobalBrowser.isOpera = is_opera || is_opera2 || is_opera3 || is_opera4 || is_opera5 || is_opera6 || is_opera7 || is_opera5up || is_opera6up || is_opera7up;
   geber_GlobalBrowser.isOpera2 = is_opera2;
   geber_GlobalBrowser.isOpera3 = is_opera3;
   geber_GlobalBrowser.isOpera4 = is_opera4;
   geber_GlobalBrowser.isOpera5 = is_opera5;
   geber_GlobalBrowser.isOpera6 = is_opera6;
   geber_GlobalBrowser.isOpera7 = is_opera7;
   geber_GlobalBrowser.isOpera5up = is_opera5up;
   geber_GlobalBrowser.isOpera6up = is_opera6up;
   geber_GlobalBrowser.isOpera7up = is_opera7up;


   geber_GlobalBrowser.isIE = is_ie3 || is_ie4 || is_ie5 || is_ie5_5 || is_ie6 || is_ie4up || is_ie5up || is_ie5_5up || is_ie6up || is_ie7 || is_ie7up;
   geber_GlobalBrowser.isIE3 = is_ie3;
   geber_GlobalBrowser.isIE4 = is_ie4;
   geber_GlobalBrowser.isIE5 = is_ie5;
   geber_GlobalBrowser.isIE55 = is_ie5_5;
   geber_GlobalBrowser.isIE6 = is_ie6;
   geber_GlobalBrowser.isIE7 = is_ie7;
   geber_GlobalBrowser.isIE4up = is_ie4up;
   geber_GlobalBrowser.isIE5up = is_ie5up;
   geber_GlobalBrowser.isIE55up = is_ie5_5up;
   geber_GlobalBrowser.isIE6up = is_ie6up;
   geber_GlobalBrowser.isIE7up = is_ie7up;


   geber_GlobalBrowser.isAOL = is_aol3 || is_aol4 || is_aol5 || is_aol6 || is_aol7 ||is_aol8;
   geber_GlobalBrowser.isAOL3 = is_aol3;
   geber_GlobalBrowser.isAOL4 = is_aol4;
   geber_GlobalBrowser.isAOL5 = is_aol5;
   geber_GlobalBrowser.isAOL6 = is_aol6;
   geber_GlobalBrowser.isAOL7 = is_aol7;
   geber_GlobalBrowser.isAOL8 = is_aol8;


   geber_GlobalBrowser.isNetscape = is_nav;   
   geber_GlobalBrowser.isNav = is_nav || is_nav2 || is_nav3 || is_nav4 || is_nav4up || is_navonly || is_nav6 || is_nav6up || is_nav5 || is_nav5up || is_nav7 || is_nav7up || is_nav8 || is_nav8up;   
   geber_GlobalBrowser.isNav2 = is_nav2;
   geber_GlobalBrowser.isNav3 = is_nav3;
   geber_GlobalBrowser.isNav4 = is_nav4;
   geber_GlobalBrowser.isNav5 = is_nav5;
   geber_GlobalBrowser.isNav6 = is_nav6;
   geber_GlobalBrowser.isNav7 = is_nav7;
   geber_GlobalBrowser.isNav8 = is_nav8;
   geber_GlobalBrowser.isNav5up = is_nav5up;
   geber_GlobalBrowser.isNav6up = is_nav6up;
   geber_GlobalBrowser.isNav7up = is_nav7up;
   geber_GlobalBrowser.isNav8up = is_nav8up;

   geber_GlobalBrowser.isHotJava = is_hotjava || is_hotjava3 || is_hotjava3up;
   geber_GlobalBrowser.isHotJava3 = is_hotjava3;
   geber_GlobalBrowser.isHotJava3up = is_hotjava3up;

   geber_GlobalBrowser.isKonquerer= is_konq;
   geber_GlobalBrowser.isSafari   = is_safari;
   geber_GlobalBrowser.isKHTML    = is_khtml;
   geber_GlobalBrowser.isGecko    = is_gecko;
   geber_GlobalBrowser.isFirebird = is_fb;
   geber_GlobalBrowser.isFirefox  = is_fx;
   geber_GlobalBrowser.isMozilla  = is_moz;
   geber_GlobalBrowser.isWebTV  = is_webtv;


   geber_GlobalBrowser.os_MAC = is_mac;
   geber_GlobalBrowser.os_MAC68k = is_mac68k;
   geber_GlobalBrowser.os_MACPPC = is_macppc;
   geber_GlobalBrowser.os_OS2 = is_os2;

   geber_GlobalBrowser.os_Win   = is_win;
   geber_GlobalBrowser.os_Win2k = is_win2k;
   geber_GlobalBrowser.os_WinXP = is_winxp;
   geber_GlobalBrowser.os_Win3  = is_win31;
   geber_GlobalBrowser.os_Win95 = is_win95;
   geber_GlobalBrowser.os_Win98 = is_win98;
   geber_GlobalBrowser.os_WinME = is_winme;
   geber_GlobalBrowser.os_WinNT = is_winnt;
   geber_GlobalBrowser.os_Win32 = is_win32;
   geber_GlobalBrowser.os_Win16 = is_win16;

   geber_GlobalBrowser.os_linux = is_linux;
   geber_GlobalBrowser.os_unix = is_unix;

   geber_GlobalBrowser.jsVersion = is_js;

   // DETECT additional geber_GlobalBrowser status bar
   geber_GlobalBrowser.extraStatusBarHeight = 0;
   if (geber_GlobalBrowser.os_WinXP)
       geber_GlobalBrowser.extraStatusBarHeight = 15;


   geber_GlobalBrowser.hasDOM = is_getElementById && !(is_opera && !is_opera7up);

   // ----------------------------------------------------------------
   // ************* DETECT PLUGINS ****************
   geber_GlobalBrowser.hasFlash = false;
   geber_GlobalBrowser.flashVersion = 0;
   geber_GlobalBrowser.hasPDF = false;
   geber_GlobalBrowser.pdfVersion = 0;
   geber_GlobalBrowser.isJavaEnabled = is_java;
   geber_GlobalBrowser.hasJava = false;
   geber_GlobalBrowser.jsVersion = 0;
   geber_GlobalBrowser.hasDirector = false;
   geber_GlobalBrowser.directorVersion = 0;
   geber_GlobalBrowser.hasRealPlayer = false;
   geber_GlobalBrowser.realPlayerVersion = 0;
   geber_GlobalBrowser.hasQuickTime = false;
   geber_GlobalBrowser.quickTimeVersion = 0;
   geber_GlobalBrowser.hasWMedia = false;
   geber_GlobalBrowser.wmediaVersion = 0;
   geber_GlobalBrowser.arePluginsDetected = 0;

//    geber_GlobalBrowser.flashVersion = detectFlash();
//    geber_GlobalBrowser.hasFlash = (geber_GlobalBrowser.flashVersion > 0) ? true : false;

   var flashPlayerVersion = deconcept.SWFObjectUtil.getPlayerVersion();
   if (flashPlayerVersion && flashPlayerVersion.major > 0)
   {
       geber_GlobalBrowser.hasFlash = true;
       geber_GlobalBrowser.flashVersion = flashPlayerVersion.major;
   }

   geber_GlobalBrowser.hasDetectedPlugins = function()
   {
       return this.arePluginsDetected ? true : false;
   }

   geber_GlobalBrowser.detectPlugins = function()
   {
       var info = new Array();
       try {
           Plugin=new Object();
           Object.extend(Plugin,(new PluginFactory()));

           for (var i in Plugin.PLUGINS)
           {
               info[i] = Plugin.getInfo(i);
           }
       } catch(e) {return false;}

       this.arePluginsDetected = 1;

       for (var i in info)
       {
           if (!Plugin.isInstalled(info[i].name))
               continue;

           // **** JAVA
           if (String(info[i].name).toLowerCase() == "acrobat")
           {
               this.hasPDF = true;
               this.pdfVersion = Plugin.getVersion(info[i].name);
           }

           else if (String(info[i].name).toLowerCase() == "flash")
           {
               this.hasFlash = true;
               this.flashVersion = Plugin.getVersion(info[i].name);
           }

           else if (String(info[i].name).toLowerCase() == "java")
           {
               this.hasJava = true;
               this.javaVersion = Plugin.getVersion(info[i].name);
           }

           else if (String(info[i].name).toLowerCase() == "realplayer")
           {
               this.hasRealPlayer = true;
               this.realPlayerVersion = Plugin.getVersion(info[i].name);
           }

           else if (String(info[i].name).toLowerCase() == "director")
           {
               this.hasDirector = true;
               this.directorVersion = Plugin.getVersion(info[i].name);
           }

           else if (String(info[i].name).toLowerCase() == "windows media")
           {
               this.hasWMedia = true;
               this.wmediaVersion = Plugin.getVersion(info[i].name);
           }

           else if (String(info[i].name).toLowerCase() == "quicktime")
           {
               this.hasQuickTime = true;
               this.quickTimeVersion = Plugin.getVersion(info[i].name);
           }
       }

   } // detect plugins

   if (geber_GlobalBrowser.isKonquerer || geber_GlobalBrowser.isSafari || geber_GlobalBrowser.isKHTML || geber_GlobalBrowser.isGecko ||
       geber_GlobalBrowser.isFirebird ||  geber_GlobalBrowser.isFirefox || geber_GlobalBrowser.isMozilla || geber_GlobalBrowser.isWebTV)
   {
       geber_GlobalBrowser.detectPlugins();
   }


   // ----------------------------------------------------------------
   // ************ create a XML-HTTP transfer object
   geber_GlobalBrowser.XMLHttpRequest = false;


  if (geber_GlobalBrowser.isIE && geber_GlobalBrowser.os_Win)
  {

     if (window.XMLHttpRequest && !geber_GlobalBrowser.isIE7)
     {
         geber_GlobalBrowser.XMLHttpRequest = window.XMLHttpRequest;
     }
     else if (!geber_GlobalBrowser.isIE7)
     {
         var activexNames = new Array("Msxml2.XMLHTTP.6.0", "Msxml2.XMLHTTP.4.0", "Msxml2.XMLHTTP.3.0", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP");
         for (i = 0; i < activexNames.length; i++)
         {
             try 
             {
                 geber_GlobalBrowser.XMLHttpRequest = new ActiveXObject(activexNames[i]);
                 break;
             }
             catch(e) {geber_GlobalBrowser.XMLHttpRequest = false;}
         }
     }
  }


    if (!geber_GlobalBrowser.XMLHttpRequest && typeof(XMLHttpRequest) != 'undefined') 
    {
      try 
      {
          geber_GlobalBrowser.XMLHttpRequest = new XMLHttpRequest();
      } 
      catch (e) 
      {
          geber_GlobalBrowser.XMLHttpRequest = false;
      }
    }

    if (!geber_GlobalBrowser.XMLHttpRequest && window.createRequest) 
    {
      try 
      {
          geber_GlobalBrowser.XMLHttpRequest = window.createRequest();
      } 
      catch (e) 
      {
          geber_GlobalBrowser.XMLHttpRequest = false;
      }
    }



    // detect if this site is located on the local filesystem or provided via Web access
    geber_GlobalBrowser.isLocal = (String(window.location.protocol).toLowerCase().indexOf("file") >= 0)


    geber_GlobalBrowser.initialised = true;
    return geber_GlobalBrowser;
}


function geber_detect_onLoad()
{
    var browser = geber_getBrowser();
    browser.setPageIsLoaded(true);
}

geber_lib_addLoadEvent(geber_detect_onLoad);
// ===================================================================================
//  js_geber_lib
// ===================================================================================
function geber_lib_activateLibrary(pagePath)
{
  geber_lib_detectBasePath(pagePath);
}

var geber_lib_onloadFuncArray;

function geber_lib_addLoadEvent(func) 
{
    if (document.all)
    {
        try { attachEvent("onload", func); return;}
        catch (e) 
        { }
    }
    else
    {
        window.addEventListener("load", func, true);
        return;
    }


  // initialise the onload handler
  if (geber_lib_onloadFuncArray == null)
  {
      geber_lib_onloadFuncArray = new Array();

      var oldonload = window.onload;
      window.onload = function() 
      {
          for (var funcIdx=0; funcIdx <  geber_lib_onloadFuncArray.length; funcIdx++)
               geber_lib_onloadFuncArray[funcIdx]();
      }
  }

  geber_lib_onloadFuncArray[geber_lib_onloadFuncArray.length] = func;
}


function geber_lib_attachEventListener(target, eventType, functionRef, capture)
{
    if (typeof target.addEventListener != "undefined")
        target.addEventListener(eventType, functionRef, capture);
    else if (typeof target.attachEvent != "undefined")
        target.attachEvent("on" + eventType, functionRef);
    else
    {
        return false;
    }

    return true;
};


function geber_lib_getBrowserWidth()
{
	if (window.innerWidth)
		return window.innerWidth;
	else if (document.documentElement && document.documentElement.clientWidth != 0)
		return document.documentElement.clientWidth;
	else if (document.body)
		return document.body.clientWidth;

	return 0;
};




   // geber_lib_stripTags
   // ---------------------------------------------------------------------------------------------------------------------------------------------------------
   /**
    * stripps all the tags from the provided text
    */
    function geber_lib_stripTags(text)
    {
        if (!text || (typeof text != "string") || (text.length <= 0)) 
            return "";

        // strip off all javascript tags
        text = text.replace(/<script.*<\/script[^>]*>/gi, "");


        // strip off all stye tags
        text = text.replace(/<style.*<\/style[^>]*>/gi, "");

        // strip off all other tags
        text = text.replace(/<[^>]*>/gi, "");

        // strip off all invalid characters
        text = text.replace(/[-\w+|"'\.]/gi, "");

        return text;
    }

function geber_lib_getQueryParameter(paramName)
{
       var query = window.location.search.toString();

       if (!query || (query.length <= 0)) 
           return "";

       if ((paramName == null) || (typeof(paramName) != "string") || (paramName.length <= 0))
         paramName = "q";

       query = query.match(new RegExp("^.*[?&]" + paramName + "=(.*)$"));
       if (!query) return "";

       query = query[1];
       query = unescape(query);

       // get rid of invalid whitespace characters
       query = query.replace(/[\r\n\t]+/gi, ' ') ;
       var re = new RegExp("[" + String.fromCharCode(0) + "-" + String.fromCharCode(31)  + 
                                   String.fromCharCode(96) + "]", "gi") ;     
       query = query.replace(re, '');

       // convert fixed size space
       re = new RegExp(String.fromCharCode(160) + "+", "gi") ;
       query = query.replace(re, ' ') ;

       // strip off extra query paramaters
       query = query.replace(/&(amp;)?([^;]*=.*)?$/gi, "");

       // tags are invalid
       if (query.match(/<.?(script|style)/gi))
           return "";      

       // clean up the query string
       query = geber_lib_stripTags(query);
       query = query.replace(/[^-_:;,\w\/\.=]/gi, "");
       return query;
}


function geber_lib_writeDocument(htmlText)
{
    document.write(htmlText);
}

var geber_lib_pageBaseURL = "/";
function geber_lib_getBaseURLPath()
{
    if (geber_lib_pageBaseURL)
        return geber_lib_pageBaseURL;
    else return "/";
}

function geber_lib_redirectToPath(pagePath)
{
    if (!pagePath || typeof(pagePath) != "string" || pagePath.length <= 0)
        return false;

    var baseURIPath = geber_lib_getBaseURLPath();
    if (!baseURIPath || typeof(baseURIPath) != "string" || baseURIPath.length <= 0)
        return false;

    var targetPath = "";
    if (pagePath.substring(0, 3) == "../")
    {
        baseURIPath = window.location.pathname;
        while (pagePath.substring(0, 3) == "../")
        {
            baseURIPath = geber_lib_dirname(baseURIPath);
            pagePath = pagePath.substr(3);
        }
 
        if (!baseURIPath || baseURIPath.length <= 0)
            baseURIPath = "";

        targetPath = baseURIPath + "/" + pagePath;
    }

    if (pagePath.substring(0, 1) == "/" && baseURIPath.substring(baseURIPath.length-1, baseURIPath.length) == "/")
        targetPath = baseURIPath.substring(0, baseURIPath.length-1) + pagePath;
    else
        targetPath = baseURIPath + pagePath;

    if (targetPath && targetPath.length > 0)
    {
        window.location.href =  targetPath;
        return true;
    }
    return false;
}

function geber_lib_detectBasePath(currentPagePath)
{
   if (!currentPagePath)
       return;

   currentPagePath = String(currentPagePath).replace(new RegExp("^/(de|en|fr|it|es)/"), "/");

   var newPageBaseURL = String(window.location.pathname);
   var pos = newPageBaseURL.indexOf(currentPagePath);

   if (pos < 0) // detect some special pages
       pos = newPageBaseURL.indexOf("/serviceseiten/suche");
   if (pos < 0) // detect some special pages
       pos = newPageBaseURL.indexOf("/servicepages/search");
   if (pos < 0) // detect some special pages
       pos = newPageBaseURL.indexOf("/servicepages");
   if (pos < 0) // detect some special pages
       pos = newPageBaseURL.indexOf("/serviceseiten");


   if (pos >= 0)
       geber_lib_pageBaseURL = newPageBaseURL.substring(0, pos);
   else
       geber_lib_pageBaseURL = "/";

   if (geber_lib_pageBaseURL == "")
       geber_lib_pageBaseURL = "/";

}

function geber_lib_dirname(fileName)
{
      if (!fileName) return fileName;
      fileName = String(fileName);
     
      if (fileName.length <= 0) return fileName;

      var pathSeparator = "/";
      if (String(window.location.protocol).match(/file/i) && navigator.platform.match(/Win/i) && navigator.userAgent.match(/MSIE/))
          pathSeparator = "\\";

      var idx = fileName.lastIndexOf(pathSeparator);
      if (idx && (idx >= 0)) 
          return fileName.substring(0, idx);
      else
          return fileName;
}
function glossary_addLinkBackButton() 
{
    var content = document.getElementById("description");
    if (!content) content = document.getElementById("bodyContent");
    if (!content) content = document.getElementById("content");
    if (!content) return;
    
   
    var links = content.getElementsByTagName("a");
    for (var i=0; i<links.length; i++) {
       if (links[i].href.match(/\?/))
           links[i].href=links[i].href + "&back=1";
        else
           links[i].href=links[i].href + "?back=1";
    }
}



function print_setImg() {   
    var a = document.getElementById("mainbar");
    if (!a) return;

    var images = a.getElementsByTagName("img");
    for(var i = 0; images && i < images.length; i++) 
    {
      var imageTag = images[i];

      // get the parent div layer of the image
      if (imageTag.parentNode && (String(imageTag.parentNode.getAttribute("class")).indexOf("bild") || String(imageTag.parentNode.getAttribute("className")).indexOf("bild")))
          imageTag = imageTag.parentNode;

      if (document.formular.setImg[0].checked) 
        imageTag.style.display="inline";
      if (document.formular.setImg[1].checked) 
        imageTag.style.display="none";
    }
}


function openFeedback() {
  var postop = document.getElementById("pageheader").offsetHeight;
  document.getElementById("feedbacksmall").style.top = ""+postop+"px";
  
  var posleft = document.body.offsetWidth - 280 - document.getElementById("feedbacksmall").offsetWidth;
  if (posleft < 100) posleft=108;
  document.getElementById("feedbacksmall").style.left= ""+posleft+"px";
 
  try {
     var flashMovie = document.getElementById("flashLayerID1Movie"); 
     if (flashMovie)
     {
          flashMovie.style.display = "none";
          var flashMovieAltImg = document.getElementById("flashLayerID1NoFlash"); 
          if (flashMovieAltImg)
              flashMovieAltImg.style.display = "block";
      }
  }
  catch(e){}

  try {
     var quicklink = document.getElementById("startquicklink");
     if (quicklink)
      {
       quicklink.style.visibility = "hidden";
      }
  }
  catch(e){}

  document.getElementById("feedbacksmall").style.visibility = "visible";
}  

function closeFeedback() {
  document.getElementById("feedbacksmall").style.visibility = "hidden";

  try {
     var quicklink = document.getElementById("startquicklink");
     if (quicklink)
      {
       quicklink.style.visibility = "visible";
      }
  }
  catch(e){}

  try {
     var flashMovie = document.getElementById("flashLayerID1Movie"); 
     var browser = geber_getBrowser();
     if (flashMovie && browser && browser.hasFlash)
     {
          flashMovie.style.display = "block";
          var flashMovieAltImg = document.getElementById("flashLayerID1NoFlash"); 
          if (flashMovieAltImg)
              flashMovieAltImg.style.display = "none";
     }

  }
  catch(e){}
}


function sendAnswer(feedbackForm) {
 if (!feedbackForm || !feedbackForm.action)
     feedbackForm = document.feedbackform;

 if (!feedbackForm)
     return true;

  var browser = geber_getBrowser();
  if (!browser)
     return true;

  var design="-";
  for (i=0;i<=4;i++) {
    if(feedbackForm.design[i].checked == true)
    design=feedbackForm.design[i].value;
  }

  var navigation="-";
  for (i=0;i<=4;i++) {
    if(feedbackForm.navigation[i].checked == true)
    navigation=feedbackForm.navigation[i].value;
  }

  var funktionen="-";
  for (i=0;i<=4;i++) {
    if(feedbackForm.funktionen[i].checked == true)
      funktionen=feedbackForm.funktionen[i].value;
  }

  var gesamteindruck="-";
  for (i=0;i<=4;i++) {
    if(feedbackForm.gesamteindruck[i] && feedbackForm.gesamteindruck[i].checked == true)
      gesamteindruck=feedbackForm.gesamteindruck[i].value;
  }

  var format="-";
  for (i=0;i<=3;i++) {
    if(feedbackForm.format[i] && feedbackForm.format[i].checked == true)
      format=feedbackForm.format[i].value;
  }

  var comment="";
  if (feedbackForm.comment.value)
  {
      try { comment = encodeURI(feedbackForm.comment.value);} catch(e) { comment = escape(feedbackForm.comment.value);  }
  }

  if (browser.XMLHttpRequest) {
    var targetActionAddress = feedbackForm.action;
    var targetAddress = targetActionAddress;
    if (targetActionAddress && !targetActionAddress.match(/^(https?|mailto|file):\/\//))
    {
        targetActionAddress = String(targetActionAddress);
        targetAddress = window.location.protocol;
        if (targetAddress.indexOf("/") <= 0) targetAddress += "//";
        targetAddress += window.location.host;



        if (targetActionAddress.substring(0, 1) == "/")
            targetAddress += geber_lib_getBaseURLPath() + feedbackForm.action;
        else
        {
            targetAddress += String(window.location.pathname).replace(/^(.*\/)[^\/]+$/, "$1");
            if (targetAddress.substring(targetAddress.length-2, targetAddress.length-1) != "/")
                targetAddress += "/";

            targetAddress += feedbackForm.action;
        }
    }

    browser.XMLHttpRequest.open("POST", targetAddress + "?xmlhttp=1&design="+design+"&navigation="+navigation+"&funktionen="+funktionen+"&gesamteindruck="+gesamteindruck + "&format=" + format + "&feedbacktype=1&action=submit",true);
    browser.XMLHttpRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
    comment = "comment=" + comment;
    browser.XMLHttpRequest.setRequestHeader("Content-length", String(comment.length));

    browser.XMLHttpRequest.onreadystatechange=function() {
      if (browser.XMLHttpRequest.readyState==4) {
      }
    }
    browser.XMLHttpRequest.send(comment);
    closeFeedback();
    return false;
  }

}




function geber_printmanager_addPage(myLink, pagePath, layerID)
{
    if (!myLink || !pagePath || !myLink.href || !layerID)
        return false;

    // add the page
    var browser;
    try { browser = geber_getBrowser(); } catch(e) {}
    if (!browser || !browser.XMLHttpRequest)
        return false;


    var targetAddress = myLink.href;
    if (!targetAddress.match(/^(https?|mailto|file):\/\//))
    {
        var baseName = String(window.location.pathname).replace(/^(.*\/)[^\/]*.(html?|php|asp|jsp)$/i, "$1");
        targetAddress = window.location.protocol + window.location.host + baseName + targetAddress;
    }

    if (targetAddress.indexOf("add=" + pagePath) < 0)
    {
        if (targetAddress.indexOf("?") >= 0)
            targetAddress += "&";
        else
            targetAddress += "?";
        targetAddress += "add=" + pagePath;
    }

    browser.XMLHttpRequest.open("GET", targetAddress, true);
    browser.XMLHttpRequest.onreadystatechange=function() {
      if (browser.XMLHttpRequest.readyState==4) {
          var returnCode = browser.XMLHttpRequest.responseText;

          // open the layer 
          if (returnCode.match(/OK/) || String(browser.XMLHttpRequest.status).match(/^20/))
          {
              var okMessageLayer = document.getElementById(layerID);
              if (okMessageLayer)
                okMessageLayer.style.display = "block";
          }
      }
    }
    browser.XMLHttpRequest.send(null);

    return true;
}


function geber_printmanager_closeMessageLayer(layerID)
{
    if (!layerID) return;
    var messageLayer = document.getElementById(layerID);
    if (messageLayer)
        messageLayer.style.display = "none";
}

function writePrintManagerLayer(pagetitle, pathToPm, pathToCloseImg)
{

document.write("<div id=\"printmanagerbasket\" >");
document.write("<div class=\"printheadline\"><h3>PRINTMANAGER</h3><a class=\"close\" href=\"javascript:void(0);\" onclick=\"geber_printmanager_closeMessageLayer('printmanagerbasket'); return false;\">");
document.write("<img src=\"" + pathToCloseImg  + "\"></a></div>");
document.write("<div class=\"printmanager_content\"><strong>The following page has been added to the print manager's collection.</strong>");
document.write("<ul><li>" + pagetitle + "</li></ul>");
document.write("<form action=\"#\" onSubmit=\"geber_printmanager_closeMessageLayer('printmanagerbasket'); return false;\"><input name=\"mailsubmit\" value=\"&nbsp;&nbsp;OK&nbsp;&nbsp;\" type=\"submit\" style=\"width:60px; font-size:12px; font-weight:bold;\" onclick=\"geber_printmanager_closeMessageLayer('printmanagerbasket'); return false;\"></form>");
document.write("</div>");
document.write("<div class=\"printmanagerbottom\"><a href=\"" +  pathToPm + "\" onclick=\"geber_printmanager_closeMessageLayer('printmanagerbasket');\">open print manager</a></div>");
document.write("</div>");

}


   function geber_table_handlemouseover(row)
   {
       geber_table_addclassname(row, "highlightmouseover");
   }

   function geber_table_handlemouseout(row)
   {
       geber_table_removeclassname(row, "highlightmouseover");
   }


   function geber_table_handlemouseclick(row)
   {
       if (row == null) return;
       if (row.className == null || row.className == "" || row.className.indexOf("highlightclick") < 0)
           geber_table_addclassname(row, "highlightclick");
       else
           geber_table_removeclassname(row, "highlightclick");
   }




   function geber_table_addclassname(item, name)
   {
       if (item == null || name == null || typeof(name) != "string" || name == "") return;
       try
       {
           if (item.className == null || item.className == "")
           {
               item.className = name;
           }
           else if (item.className.length < name.length ||
                 (item.className != name && item.className.indexOf(" " + name + " ") < 0 &&
                  item.className.substr(item.className.length - name.length - 1) != " " + name &&
                  item.className.substring(0, name.length+1) != name +" " 
                 )
              )
           {
               item.className += " " + name;
           }
       } catch(e) {alert(e);}
   }

   function geber_table_removeclassname(item, name)
   {
       if (item == null || name == null || typeof(name) != "string" || name == "") return;
       try
       {
           if (item.className == name)
               item.className = "";

           else if (item.className != null && item.className != "" && item.className.length > name.length)
           {
               var pos = item.className.indexOf(" " + name + " ");
               if (pos >= 0)
                   item.className = item.className.substring(0, pos+1) + item.className.substr(pos+1 + name.length + 1);

               else if (item.className.substr(item.className.length - name.length - 1) == " " + name)
                   item.className = item.className.substr(0, item.className.length - name.length - 1);

               else if (item.className.substring(0, name.length+1) == name + " ")
                   item.className = item.className.substr(name.length+1);
           }
       } catch(e) {alert(e);}
   }

var operabar = (window.opera ? "=yes" : "");


function orderservicePopUp(newLocation) {
  var w = 657;
  var h = 600;
 	
  return PopUpOpenWindow(newLocation, 'popup', 'resizable=yes, status=no, toolbar=no, scrollbars' + operabar, w, h); 
}

function sendPopUp(newLocation) {
  var w = 580;
  var h = 380;
 	
  return PopUpOpenWindow(newLocation, 'popup', 'resizable=yes, status=no, toolbar=no, scrollbars' + operabar, w, h); 
}

function feedbackPopUp(newLocation) {
  var w = 450;
  var h = 380;
 	
  return PopUpOpenWindow(newLocation, 'popup', 'resizable=yes, status=no, toolbar=no, scrollbars' + operabar, w, h); 
}

function printmanagersmallPopUp(newLocation) {
  var w = 450;
  var h = 300;
 	
  return PopUpOpenWindow(newLocation, 'popup', 'resizable=yes, status=no, toolbar=no, scrollbars' + operabar, w, h); 
}

function printmanagerbigPopUp(newLocation) {
  var w = 700;
  var h = 500;
 	
  return PopUpOpenWindow(newLocation, 'popup', 'resizable=yes, status=no, toolbar=no, scrollbars' + operabar, w, h); 
}


function openPopUp(newLocation) {
  var w = 400;
  var h = 250;

  /* increase size because status bar is always visible on Windows XP */
  var Ergebnis = navigator.userAgent.match(/Windows NT ([5-9]).([0-9])/);
  if (navigator.userAgent.match(/ MSIE/) && Ergebnis && Ergebnis[2] && Ergebnis[1] && ((Ergebnis[2] >= 1) || (Ergebnis[2] > 5))) 
    h = h+20;

  var popUpWindow;

  try {
      popUpWindow = window.open(newLocation, 'popup', 'resizable=yes, status=no, toolbar=no, scrollbars=no, width='+w+', height='+h);
  } catch(e) { return true;}

  try {
    popUpWindow.resizeTo(w, h);
    popUpWindow.focus();
    return false;
  } catch(e) {}

  return true;
}

function printPopUp(newLocation) {
  var w = 700;
  var h = 500;
  
  var operabar = "";
  if (window.opera) operabar = "=yes";
  
   return PopUpOpenWindow(newLocation, 'popup', 'resizable=yes, status=no, toolbar=no, scrollbars' + operabar, w, h); 
}

function fileLibrarysmallPopUp(newLocation) {
  var h = 300;
  var w = 500;

  var operabar = "";
  if (window.opera) operabar = "=yes";
 
  return PopUpOpenWindow(newLocation, 'fileLibrary', 'resizable=yes, status=no, toolbar=no, scrollbars' + operabar, w, h);
}

function fileLibrarybigPopUp(newLocation) {
  var h = 500;
  var w = 700;

  var operabar = "";
  if (window.opera) operabar = "=yes";
 
  return PopUpOpenWindow(newLocation, 'fileLibrary', 'resizable=yes, status=no, toolbar=no, scrollbars' + operabar, w, h);
}




function resizePrintPopUp() {
  var w = 700;
  var h = 560;
  var browser = geber_getBrowser();  

  h = h + browser.extraStatusBarHeight;
  if (opener)
      window.resizeTo(w, h);
}

function glossaryPopUp(newLocation) {
  var h = 350;
  var w = 450;
 
  return PopUpOpenWindow(newLocation, 'glossary', 'resizable=yes, status=no, toolbar=no, scrollbars' + operabar, w, h);
}


function tablePopUp(newLocation, preferedWidth) {

  var w = (preferedWidth && !isNaN(preferedWidth))? preferedWidth : 800;
  var h = 500;

  return PopUpOpenWindow(newLocation, 'tablePopUp', 'scrollbars,resizable=yes,location=no,status=no,toolbar=no,', w, h);
}

function imagePopUp(newLocation, w, h) 
{
  w += 15;
  h += 32;
   return PopUpOpenWindow(newLocation, 'imagePopUp', 'resizable=yes,location=no,status=no,toolbar=no,', w, h);
}

function popUp(URL, Height, Width, Resizable, Toolbar, Scrollbars, id)
{
	var szWndOptions = "";
	var szToolbar = (Toolbar=="ja")?"yes":"no";	
	var szScrollbars = (Scrollbars=="ja")?"yes":"no";
	var szResizable = (Resizable=="ja")?"yes":"no";
	szWndOptions += ",resizable=" + szResizable
	szWndOptions += ",scrollbars=" + szScrollbars
	szWndOptions += ",toolbar=" + szToolbar
	szWndOptions += ",menubar=" + szToolbar
	szWndOptions += ",status=" + szToolbar
	szWndOptions += ",directories=no"
	szWndOptions += ",copyhistory=no"
	szWndOptions += ",location=no"

	return PopUpOpenWindow(URL, id, szWndOptions, Width, Height);
}

function PopUpOpenWindow(newLocation, name, specialFeatures, w, h)
{
  var popUpWindow;
  try
  {
      var browser = geber_getBrowser();  

      /* increase size because status bar is always visible on Windows XP */
      h = h + browser.extraStatusBarHeight;
  }
  catch (e)
  {
      var Ergebnis = navigator.userAgent.match(/Windows NT ([5-9]).([0-9])/);
      if (navigator.userAgent.match(/firefox/i) || Ergebnis && Ergebnis[2] && Ergebnis[1] && ((Ergebnis[2] >= 1) || (Ergebnis[2] > 5))) 
      {
           if (navigator.userAgent.match(/ MSIE/))
               h = h+20;
           else
               h = h+15;
      }
  }

  // for popup within search
  if (!newLocation.match(/^(https?|file|ftp):\/\//i) && typeof(geberPopUpBaseURL) == 'string' && geberPopUpBaseURL != null && geberPopUpBaseURL.length > 0)
      newLocation = geberPopUpBaseURL + "/" + newLocation;

  if (!specialFeatures)
      specialFeatures = "";

  try
  {
    popUpWindow = window.open(newLocation, name, specialFeatures +  ',width=' + w + ',height=' + h);
  }
  catch (e)
  {
    return false;
  }  
  
  try
  {
    popUpWindow.resizeTo(w, h);
  }
  catch (e) {}
  
  try
  {
    popUpWindow.focus();
  }
  catch (e) {}

  return true;

}
// -----------------------------------------------------------------------------------------------
// statistics
// -----------------------------------------------------------------------------------------------
/*
function geber_preLoadGWSImage(simple)
{
    if (!simple)
        window.setTimeout("geber_doPreLoadGWSImage(false)", 200);
    else
        window.setTimeout("geber_doPreLoadGWSImage(true)", 200);

}
*/
function geber_preLoadGWSImage(simple)
{
 if (!String(window.location.hostname).match(/iedit.geber.at/) && !String(window.location.protocol).match(/file/))
 {

    var pageURL = escape(window.location);
    var referrer = document["referrer"]==null?'':escape(document.referrer);

    if ((referrer == "" || referrer.length <= 0) && (opener))
    {
        try {referrer = escape(opener.location); } catch(e) {}
    }
    var imageURL = "http://gws.geber.at/shell/gws.gif?js=1&ref=" +
                  referrer + "&pg=" + pageURL;

    imageURL += "&screen=" + screen.width + "x" + screen.height;
    var browser = null;
    try
    {
        browser = geber_getBrowser();
    }
    catch (e) {}

    if (!simple && browser && browser.hasDetectedPlugins())
    {
        if (browser)
        {
             imageURL += "&p_wai=" + (browser.isWAI ? "1" : "0");

             if (browser.hasFlash)
                 imageURL += "&p_flash=1&p_flash_v=" + browser.flashVersion;
             else
                 imageURL += "&p_flash=0";
             if (browser.hasPDF)
                 imageURL += "&p_pdf=1&p_pdf_v=" + browser.pdfVersion;
             else
                 imageURL += "&p_pdf=0";
             if (browser.hasJava)
                 imageURL += "&p_java=" + (browser.isJavaEnabled ? "1" : "-1" ) + "&p_java_v=" + (browser.javaVersion ? browser.javaVersion : "0");
             else
                 imageURL += "&p_java=0";
             if (browser.hasQuickTime)
                 imageURL += "&p_qt=1&p_qt_v=" + browser.quickTimeVersion;
             else
                 imageURL += "&p_qt=0";
             if (browser.hasWMedia)
                 imageURL += "&p_wm=1&p_wm_v=" + browser.wmediaVersion;
             else
                 imageURL += "&p_wm=0";
             if (browser.hasRealPlayer)
                 imageURL += "&p_real=1&p_real_v=" + browser.realPlayerVersion;
             else
                 imageURL += "&p_real=0";
             if (browser.hasDirector)
                 imageURL += "&p_director=1&p_director_v=" + browser.directorVersion;
             else
                 imageURL += "&p_director=0"; 
         }
     }
 

     var myImg = new Image();
     myImg.src = imageURL;
}
}


