<!--

function chgStatus(str)
{
	status = str;
	return true;
}

// Function to focus the search box
function focusSelect(){
  var doc = document.searchbox;
  if(doc.q.value == "Search site")
    doc.q.value ="";
  else
    doc.q.select();
}

function showSearch(){
  if(document.getElementById('q').style.display == 'none')
  {
    document.getElementById('q').style.display = '';
    document.getElementById('q').focus;
  }
  else
  {
    document.getElementById('q').style.display = 'none';
  }
}

function openWindowTxt(url)
{
	var w = window.open(url, "txtwin", "resizable=yes,scrollbars=yes,status=no,menubar=no,toolbar=no,location=no,directories=no");
}

function openWindow(url)
{
	var w = window.open(url, "pdfwin", "resizable=yes,scrollbars=yes,status=yes,menubar=no,toolbar=no,location=no");
	return false;
}

function openWindowStd(url)
{
	var w = window.open(url, "pdfwin", "resizable=yes,scrollbars=yes,status=yes,menubar=yes,toolbar=yes,location=yes,directories=yes");
	return false;
}

function year()
{
	var today=new Date();
	var year=today.getYear();
	if (year < 1900) year += 1900;
	return year;
}

function isLeapYear( year )
{
	if ( ( year % 4 ) == 0 )
	{
		if ( ( ( year % 100 ) == 0 ) && ( ( year % 400 ) != 0 ) )
		{
			return 'false';
		}
		return 'true';
	}
	return 'false';
}

function lbscopyright()
{
	document.write("&copy; 2000-"+year());
}

function plusyears()
{
	var numyrs = year() - 1986;
	document.write(numyrs+"-plus years of ");
}

function justyears()
{
	var numyrs = year() - 1986;
	document.write(numyrs);
}

function mtobfusc(name,text,subject)
{
	var addr=name+'@';
	addr += 'laurelb';
	addr += 'ridge.c';
	addr += 'om';
	if (!text)
	{
		text=addr;
	}
	if (subject)
	{
		subject = "?subject=" + subject;
	}
	else
	{
		subject = "";
	}
	document.write('<a href=\"mai'+'lto:'+addr+subject+'\">');
	document.write(text);
	document.write('</a>');
}

function mtobcsifusc(name,text,subject)
{
	var addr=name+'@';
	addr += 'bcs-';
	addr += 'inc.c';
	addr += 'om';
	if (!text)
	{
		text=addr;
	}
	if (subject)
	{
		subject = "?subject=" + subject;
	}
	else
	{
		subject = "";
	}
	document.write('<a href=\"mai'+'lto:'+addr+subject+'\">');
	document.write(text);
	document.write('</a>');
}

function verifyEmail(email)
{
	var status = false;
	var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
	if (email.search(emailRegEx) != -1)
	{
		status = true;
    }
    return status;
}

function verifyPhone(phone)
{
	var status = false;
	var phoneRegex = /^[-0-9.()]+$/i;
	if ((phone.search(phoneRegex) != -1) && (phone.length >= 10))
	{
		if (phone != "123456")
		{
			status = true;
		}
	}
	return status;
}

function checkForm()
{
	var checked = false;
	var form = document.forms['contact'];
	var missing = new Array();
	var message = "";
	var retval = true;
	
	// Make sure there is a contact method (email or phone)
	if (form.name.value == "")
	{
		missing[missing.length] = "name";
		retval = false;
	}
	if (form.title.value == "")
	{
		missing[missing.length] = "title";
		// not mandatory, but helpful
	}
	if (form.company.value == "")
	{
		missing[missing.length] = "company name";
		// not mandatory, but helpful
	}
	if ((form.emailaddress.value == "") && (form.phonenumber.value == ""))
	{
		missing[missing.length] = "email address or phone number";
		retval = false;
	}
	if ((form.emailaddress.value != "") && !verifyEmail(form.emailaddress.value))
	{
		missing[missing.length] = "the email address seems to be missing something";
		retval = false;
	}
	if ((form.phonenumber.value != "") && !verifyPhone(form.phonenumber.value))
	{
		missing[missing.length] = "the phone number seems to be missing something";
		retval = false;
	}
	if (!retval)
	{
		message = "We need more information to best assist you. " +
			"Please enter your " + missing[0];
		for (i=1; i<missing.length-1; i++)
		{
			message += ", " + missing[i];
		}
		if (missing.length > 1)
		{
			message += " and " + missing[missing.length-1];
		}
		message += ".";
		alert(wrap(message, 40));
	}
	return retval;
}

function MM_findObj(n, d)
{
	var p,i,x;
	if(!d)
		d=document;
	if((p=n.indexOf("?"))>0&&parent.frames.length)
	{
		d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);
	}
	if(!(x=d[n])&&d.all)
		x=d.all[n];
	for (i=0;!x&&i<d.forms.length;i++)
		x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++)
		x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById)
		x=d.getElementById(n);

	return x;
}

function MM_validateForm()
{
	var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;

	for (i=0; i<(args.length-2); i+=3)
	{
		test=args[i+2]; val=MM_findObj(args[i]);
		if (val)
		{
			nm=val.name;
			if ((val=val.value)!="")
			{
				if (test.indexOf('isEmail')!=-1)
				{
					p=val.indexOf('@');
					if (p<1 || p==(val.length-1))
						errors+='- '+nm+' must contain an e-mail address.\n';
				}
				else if (test!='R')
				{
					num = parseFloat(val);
					if (isNaN(val))
						errors+='- '+nm+' must contain a number.\n';
					if (test.indexOf('inRange') != -1)
					{
						p=test.indexOf(':');
						min=test.substring(8,p);
						max=test.substring(p+1);
						if (num<min || max<num)
							errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
					}
				}
			} else if (test.charAt(0) == 'R') errors += '- '+nm+' is required.\n'; }
	}
	if (errors)
		alert('The following error(s) occurred:\n'+errors);

	document.MM_returnValue = (errors == '');
}

function createXmlHttpRequestObject()
{
	var xmlHttp;
	try
	{
		xmlHttp = new XMLHttpRequest();
	}
	catch(e)
	{
		var XmlHttpVersions = new Array('MSXML2.XMLHTTP.6.0',
										'MSXML2.XMLHTTP.5.0',
										'MSXML2.XMLHTTP.4.0',
										'MSXML2.XMLHTTP.3.0',
										'MSXML2.XMLHTTP',
										'Microsoft.XMLHTTP');
		for (var i = 0; i < XmlHttpVersions.length && !xmlHttp; i++)
		{
			try
			{
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			}
			catch(e)
			{}
		}
	}

	if (!xmlHttp)
		alert("Error creating XMLHttpRequest object.");
	else
		return xmlHttp;
}

function mac_pad( str )
{
	if (str.length == 1 )
	{
		str = "0" + str;
	}
	return str.substring(0,2);;
}

function reformatMAC( mac_addr, f_alert )
{
	var old_mac = trim( mac_addr );
	old_mac = old_mac.replace( /\s+/, '' );
	if ( old_mac.length == 0 )
	{
		if ( f_alert == "true" )
		{
			alert( "You have not specified a MAC address." );
			return old_mac;
		}
		return "";
	}

	var validChars = '0123456789abcdefABCDEF.:-';
	for ( i = 0; i < old_mac.length; i++ )
	{
		if ( validChars.indexOf( old_mac.charAt(i) ) < 0 )
		{
			if ( f_alert == "true" )
			{
				alert( "You have specified an invalid character for a MAC address." );
				return old_mac;
			}
			return "";
		}
	}

	var new_mac;
	mac_digits = [ 0, 0, 0, 0, 0, 0 ];

	if ( old_mac.indexOf( "." ) != -1 )
	{
		mac_digits = old_mac.split( "." );
	}
	else if ( old_mac.indexOf( ":" ) != -1 )
	{
		mac_digits = old_mac.split( ":" );
	}
	else if ( old_mac.indexOf( "-" ) != -1 )
	{
		mac_digits = old_mac.split( "-" );
	}
	else if ( old_mac.length == 12 )
	{
		mac_digits[ 0 ] = old_mac.substring(0,2);
		mac_digits[ 1 ] = old_mac.substring(2,4);
		mac_digits[ 2 ] = old_mac.substring(4,6);
		mac_digits[ 3 ] = old_mac.substring(6,8);
		mac_digits[ 4 ] = old_mac.substring(8,10);
		mac_digits[ 5 ] = old_mac.substring(10,12);
	}
	else
	{
		if ( f_alert == "true" )
		{
			alert( "You have not specified a valid MAC address." );
			return old_mac;
		}
		return "";
	}

	if ( mac_digits.length < 6 )
	{
		if ( f_alert == "true" )
		{
			alert( "You have not specified a valid MAC address." );
			return old_mac;
		}
		return "";
	}

	new_mac = mac_pad( mac_digits[ 0 ] ) + "." +
				mac_pad( mac_digits[ 1 ] ) + "." +
				mac_pad( mac_digits[ 2 ] ) + "." +
				mac_pad( mac_digits[ 3 ] ) + "." +
				mac_pad( mac_digits[ 4 ] ) + "." +
				mac_pad( mac_digits[ 5 ] );
	new_mac = new_mac.toUpperCase();
	return new_mac;
}

function trim( str )
{
	return str.replace( /^\s*/, '' ).replace( /\s*$/, '' );
}

function wrap( str, width )
{
	var pos = width;
	var newstr = "";
	while ((i = str.indexOf(" ", pos)) > 0)
	{
		str = str.substring(0, i) + "\n" + str.substr(i+1);
		pos = i+width;
	}
	return str;
}

function areyousure(url, msg)
{
	answer = confirm(msg);
	if (answer == true)
	{
		window.top.location = url;
	}
	else
	{
		alert("Ok, the log was not re-analyzed.");
	}
}

//-->

