var d, dom, nu='', brow='', ie, ie4, ie5, ie5x, ie6, ie7;
var ns4, moz, moz_rv_sub, release_date='', moz_brow, moz_brow_nu='', moz_brow_nu_sub='', rv_full=''; 
var mac, win, old, lin, ie5mac, ie5xwin, konq, saf, op, op4, op5, op6, op7;

d=document;
n=navigator;
nav=n.appVersion;
nan=n.appName;
nua=n.userAgent;
old=(nav.substring(0,1)<4);
mac=(nav.indexOf('Mac')!=-1) ? true : false;
win=( ( (nav.indexOf('Win')!=-1) || (nav.indexOf('NT')!=-1) ) && !mac)?true:false;
lin=(nua.indexOf('Linux')!=-1);

if ( !document.layers )
{
	dom = ( d.getElementById ) ? d.getElementById : false;
}
else { 
	dom = false; 
	ns4 = true;
}

op=(nua.indexOf('Opera')!=-1);
saf=(nua.indexOf('Safari')!=-1);
konq=(!saf && (nua.indexOf('Konqueror')!=-1) ) ? true : false;
moz=( (!saf && !konq ) && ( nua.indexOf('Gecko')!=-1 ) ) ? true : false;
ie=((nua.indexOf('MSIE')!=-1)&&!op);
if (op)
{
	str_pos=nua.indexOf('Opera');
	nu=nua.substr((str_pos+6),4);
	brow = 'Opera';
}
else if (saf)
{
	str_pos=nua.indexOf('Safari');
	nu=nua.substr((str_pos+7),5);
	brow = 'Safari';
}
else if (konq)
{
	str_pos=nua.indexOf('Konqueror');
	nu=nua.substr((str_pos+10),3);
	brow = 'Konqueror';
}
else if (moz)
{
	pattern = /[(); \n]/;
	moz_types = new Array( 'Firebird', 'Phoenix', 'Firefox', 'Galeon', 'K-Meleon', 'Camino', 'Epiphany', 'Netscape6', 'Netscape', 'MultiZilla', 'Gecko Debian', 'rv' );
	rv_pos = nua.indexOf( 'rv' );
	rv_full = nua.substr( rv_pos + 3, 6 );
	rv_slice = ( rv_full.search( pattern ) != -1 ) ? rv_full.search( pattern ) : '';
	( rv_slice ) ? rv_full = rv_full.substr( 0, rv_slice ) : '';
	nu = rv_full.substr( 0, 3 );
	for (i=0; i < moz_types.length; i++)
	{
		if ( nua.indexOf( moz_types[i]) !=-1 )
		{
			moz_brow = moz_types[i];
			break;
		}
	}
	if ( moz_brow )
	{
		str_pos=nua.indexOf(moz_brow);// extract string position
		moz_brow_nu = nua.substr( (str_pos + moz_brow.length + 1 ) ,3);
		moz_brow_nu = ( isNaN( moz_brow_nu ) ) ? moz_brow_nu = nu: moz_brow_nu;
		moz_brow_nu_sub = nua.substr( (str_pos + moz_brow.length + 1 ), 8);
		sub_nu_slice = ( moz_brow_nu_sub.search( pattern ) != -1 ) ? moz_brow_nu_sub.search( pattern ) : '';
		( sub_nu_slice ) ? moz_brow_nu_sub = moz_brow_nu_sub.substr( 0, sub_nu_slice ) : '';
	}
	if ( moz_brow == 'Netscape6' )
	{
		moz_brow = 'Netscape';
	}
	else if ( moz_brow == 'rv' || moz_brow == '' )
	{
		moz_brow = 'Mozilla';
	} 
	if ( !moz_brow_nu )
	{
		moz_brow_nu = nu;
		moz_brow_nu_sub = nu;
	}
	if (n.productSub)
	{
		release_date = n.productSub;
	}
}
else if (ie)
{
	str_pos=nua.indexOf('MSIE');
	nu=nua.substr((str_pos+5),3);
	brow = 'Microsoft Internet Explorer';
}
else 
{
	brow = nan;
}
op5=(op&&(nu.substring(0,1)==5));
op6=(op&&(nu.substring(0,1)==6));
op7=(op&&(nu.substring(0,1)==7));
ie4=(ie&&!dom);
ie5=(ie&&(nu.substring(0,1)==5));
ie6=(ie&&(nu.substring(0,1)==6));
ie7=(ie&&(nu.substring(0,1)==7));
if(!nu) 
{
	nu = nav.substring(0,1);
}

ie5x=(d.all&&dom);
ie5mac=(mac&&ie5);
ie5xwin=(win&&ie5x);
//**************************************** wally was Here ****************************************************//
//testing thing, for determining all pertinent browser information:
function browser_test(badbrowser){
	var app_nu='error in method', app_sub_nu='', os='missing test', browser='unknown type',an, rv='';
	var spacer='=======================================\n';
	nps=n.productSub;
	nv=n.vendor;

	if(win){os='Windows';}
	else if(mac){os='MacIntosh';}
	else if(lin){os='Linux';}
	else {}

	if(d.layers)
	{
		app_nu = nav.substring(0,4);
		browser='Netscape Navigator';
	}
	else if ( !moz_brow && !moz_brow_nu )
	{
		browser = brow;
		app_nu = nu;
	}
	else if( moz_brow && moz_brow_nu )
	{
		app_nu = (moz_brow_nu_sub) ? moz_brow_nu_sub : moz_brow_nu;
		browser = moz_brow;
		(!app_nu) ? app_nu = nu : '';
	}

//**************************************** wally was Here ****************************************************//
	
	if (browser == 'Netscape Navigator'){			//The name Netscape Navigator used by NS3 and NS4
		if(app_nu.substring(0,1) < 7){			// Version 7 or Higher Browsers are OK
			self.location.href = badbrowser;
		}
	}
	if (browser == 'Netscape'){				//The name Netscape used by NS6 and Higher
		if(app_nu.substring(0,1) < 7){			// Version 7 or Higher Browsers are OK
			self.location.href = badbrowser;
		}
	}
	if (browser == 'Mozilla'){
		if(app_nu.substring(0,3) < 1.4){		// Version 1.4 or Higher Browsers are OK
			self.location.href = badbrowser;
		}
	}
	if (browser == 'Microsoft Internet Explorer'){
		if(app_nu.substring(0,3) < 5.5){		// Version 5.5 or Higher Browsers are OK
			self.location.href = badbrowser;
		}
	}
	if (browser == 'Opera'){
		if(app_nu.substring(0,1) < 8){			// Version 8 or Higher Browsers are OK
			self.location.href = badbrowser;
		}
	}
}