var SystemCheck = {
	init: function(){
		if (!SystemCheck.instances){
			SystemCheck.instances = [];
		} 
		this.instance = SystemCheck.instances.length;
		SystemCheck.instances[this.instance] = this;
	},

	os: function(){
		var win2kUp = SystemCheck.browserinfo.win() && (!(SystemCheck.browserinfo.win95() || SystemCheck.browserinfo.win98() || SystemCheck.browserinfo.winME()));
		var macOSX = SystemCheck.browserinfo.macOSX();
		return win2kUp || macOSX;
	},
	
	browser: function(){
		var winIE6Up = SystemCheck.browserinfo.winIE() && (!SystemCheck.browserinfo.winIE5Down());
		return winIE6Up || SystemCheck.browserinfo.firefox2Up();
	},
	
	flash: function(){
		var versionNumber = 9;
		if (window.ActiveXObject){
			try{
				var flash = new ActiveXObject("ShockwaveFlash.ShockwaveFlash." + versionNumber);
				return true;
			}
			catch(e){
				return false;
			}
		}
		else {
			if(navigator.plugins.length){
				for (var i=0; i < navigator.plugins.length; i++){
					var pluginIdent = navigator.plugins[i].description.split(" ");
					if(pluginIdent[0] == "Shockwave" && pluginIdent[1] == "Flash"){
						var versionArray = pluginIdent[2].split(".");
						return versionArray[0] >= versionNumber;
					}
				}
			}
		}
		return false;
	},
	
	cookie: function(){
		SystemCheck.setCookie('systemCheck','cookieTest',1);
		var cookieResult = SystemCheck.getCookie('systemCheck');
		return (cookieResult=='cookieTest');
	},
	
	popup: function(){
		var retval;
			retval = false;
		var w = window.open(
			"popup_checker.html?instance="+ this.instance,
			"popup_checker",
			"height=100,width=100,status=no,toolbar=no,menubar=no,location=no,scrollbars=no, resizable=no"
		);
		try {
			if (w) {
				retval = true;
			}else{
				retval = false;
			}
			//retval = ("YEP" == w.popup);
			try {w.close();} catch(ex){};
		} catch(ex){
		}
		return retval;
	},

	setValidPopups: function(){
		//var elValidPopup = getEl(this.checkFunctions['checkPopups']).className = ' valid';
	},

	setCookie: function(cookieName,cookieValue,nDays) {
		var today = new Date();
		var expire = new Date();
		if (nDays==null || nDays==0) nDays=1;
		expire.setTime(today.getTime() + 3600000*24*nDays);
		document.cookie = cookieName+"="+escape(cookieValue)
					 + ";expires="+expire.toGMTString();
	},

	getCookie: function(c_name){
		if (document.cookie.length>0){
		c_start=document.cookie.indexOf(c_name + "=")
		if (c_start!=-1){ 
		  c_start=c_start + c_name.length+1 
		  c_end=document.cookie.indexOf(";",c_start)
		  if (c_end==-1) c_end=document.cookie.length
			return unescape(document.cookie.substring(c_start,c_end));
		  } 
		}
		return null;
	},
	
	checkHttps: function(){
		$('#imgid').error(function(){
			SystemCheck.showAlert();
		});
		$('#imgid').attr('src', this.sslSource);
		return true;
	},

	setSslSource: function(source){
		this.sslSource = source;
	},

	hideAlert: function (){
	},
	showAlert: function (){
	},
	
	browserinfo: {
		uA: function(){ return navigator.userAgent.toLowerCase()},
		aN: function(){ return navigator.appName.toLowerCase();},
		iE: function(){ return (SystemCheck.browserinfo.aN().indexOf('microsoft') != -1);},
		mac: function(){ return (SystemCheck.browserinfo.uA().indexOf('mac') != -1);},
		macOSX: function(){ return (SystemCheck.browserinfo.uA().indexOf('mac os x') != -1);},
		win: function(){ return (SystemCheck.browserinfo.uA().indexOf('windows') != -1);},
		opera: function(){ return (SystemCheck.browserinfo.uA().indexOf('opera') != -1);},
		mozilla: function(){ return (SystemCheck.browserinfo.aN().indexOf('netscape') != -1 && !SystemCheck.browserinfo.safari());},
		winMozilla: function(){ return (SystemCheck.browserinfo.mozilla() && SystemCheck.browserinfo.win());},
		winIE: function(){ return (SystemCheck.browserinfo.iE() && SystemCheck.browserinfo.win() && !SystemCheck.browserinfo.opera());},
		winIE6Down: function(){ return (SystemCheck.browserinfo.winIE() && parseInt(SystemCheck.browserinfo.uA().split('msie ')[1].substring(0,1)) <= 6);},
		winIE5Down: function(){ return (SystemCheck.browserinfo.winIE() && parseInt(SystemCheck.browserinfo.uA().split('msie ')[1].substring(0,1)) < 6);},
		macIE: function(){ return (SystemCheck.browserinfo.iE() && SystemCheck.browserinfo.mac());},
		win95: function(){ return (SystemCheck.browserinfo.uA().indexOf("win95") != -1 || SystemCheck.browserinfo.uA().indexOf("windows 95") != -1);},
		win98: function(){ return (SystemCheck.browserinfo.uA().indexOf("win98") != -1 || SystemCheck.browserinfo.uA().indexOf("windows 98") != -1);},
		winME: function(){ return (SystemCheck.browserinfo.uA().indexOf("win 9x 4.90") != -1);},
		firefox: function(){ return (SystemCheck.browserinfo.uA().indexOf("firefox") != -1);},
		firefox2Up: function(){
			if (SystemCheck.browserinfo.firefox()){
				return (this.SystemCheck.browserinfo.uA().split('firefox/')[1].substring(0,1) >= 2);
			}
			return false;
		},
		safari: function(){ return this.uA.indexOf('webkit') != -1 ? true : false;}
	}
};
