var clientProfileVersion	= 10;
var requiredVersion			= 7;

var d = new Date();
d.setTime(d.getTime()+(24*60*60*1000)); // remove 180 days. Now just 24 hours
var CookieExpiryDate = d.toGMTString();

function ReadCookie (name)
{
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++)
	{
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return "";
}

function WriteCookie (name,value,date)
{
	document.cookie = name+"="+value+"; expires="+date+"; path=/";
}

function SetCPFlags (ajax,flash)
{
	WriteCookie("t","1",CookieExpiryDate);
	var ck = ReadCookie("t")=="" ? "0" : "1";

	var fullFlag	= "cpflgs=1111";
	var params = [];
	if(window.location.search.length==0)
	{
		params.push(fullFlag);
	} else {
		params = window.location.toString().split("?")[1].split("&");
	}
	
	var newCPFlags	= "cpflgs="+ck+"1"+ajax+flash;
	
	var redir = false;
	for(var i=0;i<params.length;i++)
	{
		if(params[i].indexOf("cpflgs")!=-1)
		{
			// rebuild the url with the new cpflgs value
			if(newCPFlags!=params[i]&&newCPFlags!=fullFlag)
			{
				params[i] = newCPFlags;
				document.location = document.location.toString().split("?")[0]+"?"+params.join("&");
				break;
			}
			// remove cpflgs from the querystring
			else if (window.location.search.length>0&&newCPFlags==fullFlag)
			{
				var u = document.location.toString().split("?")[0]+"?"+params.join("&");
				params.splice(i,1);
				document.location = document.location.toString().split("?")[0]+"?"+params.join("&");
				break;
			}
		}
	}
}

var hasFlash		= 0;
var hasAJAX			= 0;
var continueTest	= true;

if(!CPLoopBack)
{
	var f		= ReadCookie("FlashVersion");
	var cpv		= ReadCookie("CPV");
	if(cpv!="")	cpv = parseInt(cpv);
	
	if(f!=""&&cpv>=clientProfileVersion)
	{
		hasAJAX	= ReadCookie("AJAXEnabled");
		hasFlash = parseInt(f)>=requiredVersion ? "1" : "0";
		SetCPFlags(hasAJAX,hasFlash);
		continueTest = false;
	}
}

if(continueTest)
{
	var flash2Installed = false;
	var flash3Installed = false;
	var flash4Installed = false;
	var flash5Installed = false;
	var flash6Installed = false;
	var flash7Installed = false;
	var flash8Installed = false;
	var flash9Installed = false;
	var maxVersion = 9;
	var actualVersion = 0;
	var jsVersion = 1.0;
	var isIE = (navigator.appVersion.indexOf("MSIE") != -1) ? true : false;
	var isWin = (navigator.appVersion.indexOf("Windows") != -1) ? true : false;

	// this is a js1.1 code block, so make note that js1.1 is supported.
	jsVersion = 1.1;

	// write vbscript detection if we're not on mac.
	if(isIE && isWin){ // don't write vbscript tags on anything but ie win
		document.write('<SCR' + 'IPT LANGUAGE=VBScript\> \n');
		document.write('on error resume next \n');
		document.write('flash2Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.2"))) \n');
		document.write('flash3Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.3"))) \n');
		document.write('flash4Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.4"))) \n');
		document.write('flash5Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.5"))) \n');	
		document.write('flash6Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.6"))) \n');
		document.write('flash7Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.7"))) \n');	
		document.write('flash8Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.8"))) \n');	
		document.write('flash9Installed = (IsObject(CreateObject("ShockwaveFlash.ShockwaveFlash.9"))) \n');
		document.write('</SCR' + 'IPT\> \n'); // break up end tag so it doesn't end our script
	}


	if (navigator.plugins){
		if (navigator.plugins["Shockwave Flash 2.0"] || navigator.plugins["Shockwave Flash"]) {
			var isVersion2 = navigator.plugins["Shockwave Flash 2.0"] ? " 2.0" : "";
			var flashDescription = navigator.plugins["Shockwave Flash" + isVersion2].description;
			var flashVersion = parseInt(flashDescription.charAt(flashDescription.indexOf(".") - 1));
			flash2Installed = flashVersion == 2;		
			flash3Installed = flashVersion == 3;
			flash4Installed = flashVersion == 4;
			flash5Installed = flashVersion == 5;
			flash6Installed = flashVersion == 6;
			flash7Installed = flashVersion == 7;
			flash8Installed = flashVersion == 8;
			flash9Installed = flashVersion == 9;
		}
	}
	for (var i = 2; i <= maxVersion; i++) {	
		if (eval("flash" + i + "Installed") == true) actualVersion = i;
	}
	if(navigator.userAgent.indexOf("WebTV") != -1) actualVersion = 2;
	
	var isWin	= navigator.platform.toLowerCase().indexOf("win")>=0;
	var ua		= navigator.userAgent.toLowerCase();
	if((ua.indexOf("opera")!=-1&&!isWin)) actualVersion = 0;
	// JC Non win firefox flash enabled now
	//||((ua.indexOf("firefox")>=0||ua.indexOf("netscape")>=0)&&!isWin)) 

	// ######################################################################################################
	// ######################################################################################################

	hasAJAX = 0;
	if(isIE&&isWin)
	{
		try
		{
			m_XHR = new ActiveXObject("Msxml2.XMLHTTP.4.0");
			hasAJAX = 1;
		}
		catch(e)
		{
			try
			{
				m_XHR	= new ActiveXObject("Microsoft.XMLHTTP");
				hasAJAX = 1;
			}
			catch(e)
			{
				hasAJAX = 0;
			}
		}
	}
	else
	{
		try
		{
			//netscape.security.PrivilegeManager.enablePrivilege("UniversalBrowserRead");
			m_XHR	= new XMLHttpRequest();
			hasAJAX = 1;
		}
		catch(e)
		{
			hasAJAX = 0;
		}
	}
	
	WriteCookie("CPV",clientProfileVersion,CookieExpiryDate);
	WriteCookie("FlashVersion",actualVersion,CookieExpiryDate);
	WriteCookie("AJAXEnabled",hasAJAX,CookieExpiryDate);
	
	if(hasFlash=="") hasFlash = actualVersion>=requiredVersion ? "1" : "0";
	SetCPFlags(String(hasAJAX),String(hasFlash));
}
