function emptyTopSearch(){	document.topNavSearch.q.value = "";}function emptyMusicSearch(){	document.form2.q.value = "";}function openPrivacy(url){	privacyWindow=window.open(url,'privacy','status=yes,scrollbars=yes,resizable=yes,height=350,width=450');	if (window.focus) {privacyWindow.focus()}}function openBugReport(){	var page = document.form1.page.value;	var emailAddress = document.form1.emailAddress.value;	var comments = document.form1.comments.value;	bugWindow=window.open('/popup/bugreport.php?page=' + page + '&emailAddress=' + emailAddress + '&comments=' + comments,'bugReport','status=yes,scrollbars=yes,resizable=yes,height=350,width=450');	if (window.focus) {bugWindow.focus()}}function createTarget(){	newWin = window.open("", "newWin", "status=yes,scrollbars=yes,resizable=yes,width=450,height=350");	newWin.focus()	return true;}function noSpam(user, domain) {	var domain = domain.replace(" dot ",".");	locationstring = "mailto:" + user + "@" + domain + "?subject=Email From WWEEK.COM";	window.location = locationstring;}function MM_openBrWindow(theURL,winName,features){ //v2.0	return window.open(theURL,winName,features);}var commentWindow;function openCommentWindow(url){	commentWindow=window.open(url,'commentStory','status=yes,scrollbars=yes,resizable=yes,height=400,width=980');	if (window.focus) {commentWindow.focus()}}var emailWindow;function openEmailWindow(url){	emailWindow=window.open(url,'emailStory','status=yes,scrollbars=yes,resizable=yes,height=400,width=450');	if (window.focus) {emailWindow.focus()}}var printWindow;function openPrintWindow(url){	printWindow=window.open(url,'printStory','status=yes,scrollbars=yes,resizable=yes,height=550,width=750');	if (window.focus) {printWindow.focus()}}// this function toggles the extra information for making a storyforum entry into a letter to the editorfunction toggleLayer(whichLayer){	if (document.getElementById)	{		// this is the way the standards work		var style2 = document.getElementById(whichLayer).style;		style2.display = style2.display? "":"block";	}	else if (document.all)	{		// this is the way old msie versions work		var style2 = document.all[whichLayer].style;		style2.display = style2.display? "":"block";	}	else if (document.layers)	{		// this is the way nn4 works		var style2 = document.layers[whichLayer].style;		style2.display = style2.display? "":"block";	}	document.myForm.fullName.value = document.myForm.name.value;}// smooth anchorsvar scrollInt;var scrTime, scrSt, scrDist, scrDur, scrInt;function replaceAnchorLinks(){	var anchors, i, targ, targarr;	if (!document.getElementById)	return;	// get all anchors	anchors = document.getElementsByTagName("a");	for (i=0;i<anchors.length;i++)	{		// check if href links to an anchor on this page		if ( anchors[i].href.indexOf("#") != -1 && anchors[i].href.indexOf( document.URL ) != -1 )		{			// get name of target anchor			targ = anchors[i].href.substring( anchors[i].href.indexOf("#")+1 );			// find target anchor			targarr = document.getElementsByName( targ );			if (targarr.length)			{				anchors[i].className = (targarr[0].offsetTop < anchors[i].offsetTop) ? "up" : "down";				anchors[i].id = "__" + targ;	// save target as id with prefix (used in onclick function below)				anchors[i].onmousedown = function () { scrollToAnchor( this.id.substring( 2 ) ); return false; };				anchors[i].href = "#";			// rewrite href			}		}	}}/*SCROLL FUNCTIONS*/function scrollPage(){	scrTime += scrInt;	if (scrTime < scrDur) {		window.scrollTo( 0, easeInOut(scrTime,scrSt,scrDist,scrDur) );	}else{		window.scrollTo( 0, scrSt+scrDist );		clearInterval(scrollInt);	}}function scrollToAnchor(aname){	var anchors, i, ele;	if (!document.getElementById)	return;	// get anchor	anchors = document.getElementsByTagName("a");	for (i=0;i<anchors.length;i++) {		if (anchors[i].name == aname) {			ele = anchors[i];			i = anchors.length;		}	}	// set scroll target	if (window.scrollY)	scrSt = window.scrollY;	else if (document.documentElement.scrollTop)	scrSt = document.documentElement.scrollTop;	else	scrSt = document.body.scrollTop;	scrDist = ele.offsetTop - scrSt;	scrDur = 500;	scrTime = 0;	scrInt = 10;	// set interval	clearInterval(scrollInt);	scrollInt = setInterval( scrollPage, scrInt );}/*EASING FUNCTIONS*/function easeInOut(t,b,c,d){	return c/2 * (1 - Math.cos(Math.PI*t/d)) + b;}function strpos(str, ch) {  return str.indexOf(ch);}function validate(myform, valArray) {  var go=1;   for (var i in valArray) {      var element = myform[i];     if (element.value=="") {       alert("Please fill in "+valArray[i]+" before continuing.");      go = 0;       break;     } else if (strpos(i, 'email') != -1) {	  var retval = validateEmail(element.value);	  if (retval != 1) {	    alert("Invalid e-mail address:\n\n"+retval+"\n\nPlease correct "+valArray[i]+" before continuing.");	    go = 0;		break;	  }	}  }  if (go==1) return true; else return false;}/* Sandeep Tamhankar */function validateEmail (emailStr) {  var emailPat=/^(.+)@(.+)$/  var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]"  var validChars="\[^\\s" + specialChars + "\]"  var quotedUser="(\"[^\"]*\")"  var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/  var atom=validChars + '+'  var word="(" + atom + "|" + quotedUser + ")"  var userPat=new RegExp("^" + word + "(\\.+" + word + ")*$")  var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$")  var matchArray=emailStr.match(emailPat)  if (matchArray==null) {	return "Email address seems incorrect (check @ and .'s)"  }  var user=matchArray[1]  var domain=matchArray[2]  if (user.match(userPat)==null) {    return "The email username doesn't seem to be valid."  }  var IPArray=domain.match(ipDomainPat)  if (IPArray!=null) {	  for (var i=1;i<=4;i++) {	    if (IPArray[i]>255) {	        return "Destination IP address is invalid!"	    }    }    return true  }  var domainArray=domain.match(domainPat)  if (domainArray==null) {	return "The domain name doesn't seem to be valid."  }  var atomPat=new RegExp(atom,"g")  var domArr=domain.match(atomPat)  var len=domArr.length  if (domArr[domArr.length-1].length<2 ||     domArr[domArr.length-1].length>3) {    return "The address must end in a three-letter domain, or two letter country."  }  if (len<2) {    return "This address is missing a hostname!"  }  /* temporarily disabled   if (domainArray[0]=="hotmail.com" || domainArray[0]=="yahoo.com")    return "You have selected a free e-mail address."  */      return true;}function padout(number) { return (number < 10) ? '0' + number : number; }function in_array(myValue,myArray){    function equals(a,b)    {        return (a === b);    }    for (var i in myArray)    {        if (equals(myArray[i],myValue))            return true;    }    return false;}