/*************************************************** vi fsp script *****/
/************************** Copyright (c) 2009 virtual identity AG *****/
/***********************************************************************/
/************************************************** initial script *****/
/***********************************************************************/
/************************************** author virtual identity AG *****/

/***********************************************************************/
/* START: initialize vi namespace */

var vi = {
		version: '1.0'
};

/* END: initialize vi namespace */
/***********************************************************************/
/* START: configuration */
/* these variables may be overwritten individually inside page header */

var USE_SIFR;
USE_SIFR = USE_SIFR !== undefined ? USE_SIFR : true; // set default

/* END: configuration */
/***********************************************************************/
/* 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  = typeof navigator.product == 'string' && 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) {}
}

// disable sIFR for opera and linux os
if (vi.Info.browser.isOpera || vi.Info.os.isLinux) {
	USE_SIFR = false;
}

/* END: browser dependent configuration */
/***********************************************************************/
