var m_cookiesEnabled		= window.navigator.cookieEnabled;
var m_staticBetaSplit;
var m_staticBetaSplitFactor;
var m_staticBetaCookieName	= "staticbeta=";
var m_staticBetaExpiry;
var m_staticBetaName;
var m_staticBaseUrl;

//-- Assign the base properties that control how the beta works
function AssignStaticBetaProperties( localeInfo, staticBetaExpiry, staticBetaSplitPercentage )
{	
	m_staticBetaExpiry = staticBetaExpiry;
	m_staticBetaSplit = staticBetaSplitPercentage;	
	m_staticBaseUrl = localeInfo;
	
	SplitBeta();
}

//-- Split the beta across required boundaries
function SplitBeta()
{
	var content;
	var metrics;
	
	if( CheckExpiry() )
	{
		AssignContents( "control" );
		ExpireStaticBeta();
	}
	else
	{
		var betaState = ReadStaticBetaCookie();
		
		if( betaState != null )
		{
			//-- Visitor already cookied and in beta, show beta contents
			if( betaState == "true" ) {	AssignContents( "beta" ); }
			//-- Vistor already cookied and in control, show control contents
			else if( betaState == "false" || betaState == "expired" ) { AssignContents( "control" ); }			
		}
		else
		{
			//-- Not cookied yet, work out where to split them
			m_staticBetaSplitFactor = Math.random() * 100;

			if( m_staticBetaSplitFactor > m_staticBetaSplit  )
			{				
				WriteStaticBetaCookie( "control" );
				AssignContents( "control" );							
			}
			else
			{
				WriteStaticBetaCookie( "beta" );
				AssignContents( "beta" );
			}
		}
	}
}

//-- Assign the contents of the content area
function AssignContents( version )
{
	var content = document.getElementById( "staticbeta_" + version );		
	var metrics = document.getElementById( "staticbeta_" + version + "metrics" );	
	var baseUrl	= "<img src=\"http://www.dell.com/metrics/DellHomePage.htm?" + m_staticBaseUrl + "&eiwatch=http://www.dell.com/metrics/DellHomePage.htm&env=statichomepage_" + version + "\" width=\"1\" height=\"1\" alt=\"\" />";
	
	if( content != null && metrics != null )
	{
		metrics.innerHTML	  = baseUrl;				
		content.style.display = "block";
	}
}

//-- Read the cookie
function ReadStaticBetaCookie()
{
	if( m_cookiesEnabled )
	{
		var cookie = document.cookie.split(';');
		var nameEQ = m_staticBetaCookieName;
		var cookieVal;

		for( var i = 0; i < cookie.length; i++ )
		{
			var c = cookie[i];

			while( c.charAt(0) == " " )
			{
				c = c.substring( 1, c.length ); //delete spaces

				if( c.indexOf( nameEQ ) == 0 )
				{
					cookieVal = c.substring( nameEQ.length, c.length );
				}
			}
		}

		if( cookieVal != null && cookieVal.length > 0 )
		{
			return cookieVal;
		}
	}
	
	return null;
}

//-- Write the cookie
function WriteStaticBetaCookie( version )
{	
	if( m_cookiesEnabled )
	{
		var expiry = "; expires=" + FormatExpiry( m_staticBetaExpiry );
		if( version == "beta" ) { document.cookie = m_staticBetaCookieName + "true" + expiry + "; path=/; domain=dell.com"; }
		else { document.cookie = m_staticBetaCookieName + "false" + expiry + "; path=/; domain=dell.com"; }
	}
}

//-- Format the expiry date
function FormatExpiry( dateString )
{	
	var date = new Date( dateString );
	return date.toString();
}

//-- Run a simple check to see if the beta has expired
function CheckExpiry()
{	
	var expiryDate = new Date( m_staticBetaExpiry );
	var currentDate = new Date();
	return ( currentDate.valueOf() > expiryDate.valueOf() );
}

//-- Zap the cookie		
function ExpireStaticBeta()
{
	if( m_cookiesEnabled )
	{
		document.cookie = m_staticBetaCookieName + "expired; expires=-1; path=/; domain=dell.com";
	}
}

//-- Construct base querystring params for metrics tracking	if not supplied	
function QueryLocaleInfo()
{	
	var meta = document.getElementsByTagName( "META" );		
	var item;
	var attrib;
	var country;
	var language;
	var segment;

	for( var x = 0; x < meta.length; x++ )
	{
		item = meta[x];
		attrib = item.getAttribute( "NAME" );

		if( attrib.toLowerCase() == "documentcountrycode" ) { country = item.getAttribute( "CONTENT" );	}
		else if( attrib.toLowerCase() == "language" ) { language = item.getAttribute( "CONTENT" ); }
		else if( attrib.toLowerCase() == "segment" ) { segment = item.getAttribute( "CONTENT" ); }
	}

	return "c=" + country + "&l=" + language + "s=" + segment;
}