function sniffer(){
	this._sw = window.screen.width;
	this._sh = window.screen.height;
	this._sc = window.screen.colorDepth;
	this._ac = window.navigator.appCodeName;
	this._an = window.navigator.appName;
	this._av = window.navigator.appVersion;
	this._ua = window.navigator.userAgent;
	this._ce = window.navigator.cookieEnabled;
	this._sl = window.navigator.systemLanguage ? window.navigator.systemLanguage : window.navigator.language;
	this._pf = window.navigator.platform;
	this._dt = document.title;
	this._dp = document.location.protocol;
	this._dn = document.location.pathname;
	this._dd = document.domain;
	this._dh = document.hostname;
	this._ds = document.location.search;

	this.getReferrer = function(){
		var ref = document.referrer;
		if( ref ){
			return ref;
		}
		else{
			return "direct";
		}
	}

	this.checkBrowser = function(){
		var ua = window.navigator.userAgent;
		var t = ua.split( ";" );
		if( t[1].toLowerCase().replace( / /gi, "" ) == "u" ){
			var t2 = t[4].split( ")" );
			var t3 = t2[1].split( "/" );
			var version = t3[2];
			var t4 = t3[1].split( " " );
			var name = t4[1];
			return name + " " + version;
		}
		else if( t[1].search( /MSIE/gi ) ){
			var b = t[1].replace( /MSIE/gi, "Microsoft Internet Explorer" );
			return b;
		}
	}

	this.checkOs = function(){
		var oscpu_moz = window.navigator.oscpu;
		var oscpu_win = window.navigator.appVersion;
	
		if( oscpu_moz ){
			return oscpu_moz;
		}
		else{
			var temp = oscpu_win.split( ";" );
			return temp[2];
		}
	}

	this.checkForFlash = function(){
		var f="-",n=navigator;
		if (n.plugins && n.plugins.length) {
			for (var ii=0;ii<n.plugins.length;ii++) {
				if (n.plugins[ii].name.indexOf('Shockwave Flash')!=-1) {
					f=n.plugins[ii].description.split('Shockwave Flash ')[1];
					return f;
				}
			}
		} else if (window.ActiveXObject) {
			for (var ii=10;ii>=2;ii--) {
				try {
					var fl=eval("new ActiveXObject('ShockwaveFlash.ShockwaveFlash."+ii+"');");
					if (fl) { 
						f=ii + '.0'; 
						return f; 
					}
				}
				catch(e) {}
			}
		}
		else
			return;
	}

	this.checkForJava = function(){
		var n=navigator;
		return n.javaEnabled() ? "true" : "false";
	}
	
	this._os = this.checkOs();
	this._bw = this.checkBrowser();
	this._dr = this.getReferrer();
	this._hf = this.checkForFlash();
	this._hj = this.checkForJava();
}