Goodies to Go ™
	May 24, 2004–Newsletter #286
	This newsletter is part of the internet.com network.
	http://www.internet.com
	 
Featured this week:
* Goodies Thoughts – Open the Doorway
* Q & A Goodies
* News Goodies
* Goodies Peer Reviews
* Feedback Goodies  
* Windows Tech Goodies  
* And Remember This…
Goodies Announcement
The new Beyond HTML Goodies book
is now available!
Go beyond the basics
and learn how the pros add and use dynamic HTML features and advanced
JavaScript techniques. Beyond HTML Goodies demonstrates dozens of new and
different features readers can add to their existing Web pages using HTML and
JavaScript. The book starts with simple text and image tips, such as adding a
clock to a Web page or causing text to appear when the mouse moves over an
image. It gradually builds to more complex tricks, including manipulating forms
or working with cookies behind the scenes. Throughout the book, readers enjoy
Joe’s snappy style and “to the point” discussion of each “goody” in the book.
http://books.internet.com/books/0789727803
Goodies Thoughts – Open the Doorway
In a couple of issues of Goodies To Go recently, I have
discussed matters relating to Search Engine Optimization (see
https://www.htmlgoodies.com/letters #s 281 & 282.) These issues led to a few
feedback questions regarding doorways. Folks would like to know what they are,
whether they should use them, and if so, how to use them. I thought I’d at least
provide an introductory explanation — the whole subject is very complex; there
are companies that hire people full time to manage their doorways!
The story begins with the manner in which search engines rank pages. Take a look
at the situation, for a moment, from the search engine operators point of view.
The search engine is not there simply as a benevolent contribution to the
betterment of humankind. It is there as a business, intended to make some money
and provide its investors with a handsome return on their investments. To do
this it must sell advertising. Advertising is worth money based on the number of
people it reaches, and the success it has in getting its message across to those
people. The more people it can reach, and the more accurately it can target a
message to them, the more successful it will be.
More people use Google than any other search engine, even though they were far
from the first kids on the block (in fact, some of the first have given up
running their own engines and now use Google!) The reason is that Google manages
to reliably find what you are looking for based on what you ask. To accomplish
this is not a simple task. First, they have to be able to determine what you
really want. They have patented mathematical processes for this (and for many if
their other functions.) Second, they have to have a reliable (and accurate)
index to all the pages that are out there on the web.
To build this index, they have to be able to read web pages (by computer, of
course) and determine the nature of the pages’ content. To automate this process
requires a set of algorithms. A spider (a program that "walks" the web from link
to link, etc.) can read the pages and feed them back to an analyzer program. The
analyzer then builds the index.
Search engine optimization involves a reverse-engineering process (usually done
by a service company and purchased by the end user) that describes and thereby
enables the construction of a "perfect" page that is most likely to achieve the
highest ranking for a given search request; most preferably, the most common
related request. (Phew! – Are you still with me? If you have to read that again,
don’t feel bad — I did, and I wrote it!)
There are some problems with the whole picture, however.
The first thing you may notice is that what is "perfect" for the search engine
is far from perfect for your client! In designing a fully "SEO" optimized page
you have succeeded in bringing the potential customer to your site, but once
they’re there, you present them with something eminently computer readable, but
nonsense to the human reader. Hence the doorway page! A doorway page is a page
especially designed to be optimal for search engine ranking, but which, by one
or another method, quickly sends the human reader to another, more suitable
page.
The complexity is just beginning! Imagine that you are competing with someone
else (boy, that’s a tough one!) and they see your doorway page become so
successful. They could simply copy it, make a minor tweak and submit it to the
search engines and (theoretically) be right up there with you. In fact, most of
the search engines will recognize the duplication and reject them both, putting
you right back where you started. To prevent this you can use "Agent Delivery",
"IP Delivery" and "Page Cloaking"….. etc. etc. Suffice it to say that there is
more to this subject than we can cover here! Maybe you see why they hire full
time staff sometimes!
If you need, however, to get more in depth into this subject, I recommend that
you take a look over at Search Engine Watch (http://searchenginewatch.com)
— It’s the definitive source for search engine information.
 
Thanks for Reading!
 
 
– Vince Barnes
Q & A Goodies
Questions are taken from submissions to our Community Mentors. You can ask a Mentor a question by going to
https://www.htmlgoodies.com/mentors.
 
Q. In a web site that I created I made a catalog order form that has a
description of an item, a checkbox to select and a textbox for amount to order.
The code I have is:
<form name="form1" method="post" action="mailto:[email protected]?subject=Catalog
Order Form1" enctype = "text/plain">
<p>
<input type = "hidden" name = "recipient"
value = [email protected] />
<input type = "hidden" name = "subject"
value = "Custodial Order Form1" />
</p>
When the submit button is clicked, it goes to the recepient. But the text/plain
shows items selected and amount but it also shows amounts not selected i.e.:
ven no:1111, item description
AMOUNT=5
AMOUNT=
AMOUNT=
AMOUNT=
(Etc)
All I want is for the items selected be shown and not all of the AMOUNT= not
selected.
A. This is one reason why Server Side languages such as PHP or Perl are
used. They allow you to manipulate the form data before it is emailed out. They
also work better because some people do not have their email clients set up
properly causing the email not to be sent. Having said that though I think your
best bet would be to have two forms – one that gathers the information and a
second with a hidden element that is actually sent. When they click the submit
button the data from the first form is validated, formatted and then placed in
the hidden form hidden element to be sent. Here is an example of one that I put
together for someone else:
<html>
<head>
<title>Order Form</title>
<script language="JavaScript">
function calcamt(num)
{
var qtynum=eval("document.myform.qty"+num+".selectedIndex")
var number=eval("document.myform.szeshp"+num+".selectedIndex")
var sizeshape=eval
("document.myform.szeshp"+num+"[number].value.split(‘,’)")
eval("document.myform.price"+num+".value=sizeshape[1] * qtynum")
var pricenum=parseFloat(eval
("document.myform.price"+num+".value"))
var whole = "" + Math.round(pricenum * Math.pow(10, 2)); 
var decPoint = whole.length – 2;
if(decPoint != 0)
{
result = whole.substring(0, decPoint);
result += ".";
result += whole.substring(decPoint, whole.length);
}
else
{
result = whole;
}
eval("document.myform.price"+num+".value=result")
totalamt()
}
function qtyreset(numa)
{
if(eval("document.myform.item"+numa+".checked"))
{
}
else
{
alert("You must select the item")
return false
}
eval("document.myform.qty"+numa+".selectedIndex=0")
eval("document.myform.price"+numa+".value=’0.00’")
}
function totalamt()
{
var tempamt=0
for(i=0;i<3;i++)
{
var tamt=parseFloat(eval("document.myform.price"+i+".value"))
tempamt=tempamt+tamt
}
var whole = "" + Math.round(tempamt * Math.pow(10, 2)); 
var decPoint = whole.length – 2;
if(decPoint != 0)
{
result = whole.substring(0, decPoint);
result += ".";
result += whole.substring(decPoint, whole.length);
}
else
{
result = whole;
}
document.myform.totamt.value=result
}
function Formcheck()
{
document.sendit.sdata.value="r Item 
Size Qty Pricer"
for(i=0;i<3;i++)
{
if(eval("document.myform.item"+i+".checked"))
{
var fitem=eval("document.myform.item"+i+".value")
var fnum=eval("document.myform.szeshp"+i+".selectedIndex")
var fsize=eval
("document.myform.szeshp"+i+"[fnum].value.split(‘,’)")
var fqtynum=eval("document.myform.qty"+i+".selectedIndex")
var fqty=eval("document.myform.qty"+i+"[fqtynum].value")
var fprice=eval("document.myform.price"+i+".value") 
document.sendit.sdata.value+="r"+fitem+" "+fsize[0]
+"@ "+fsize[1]+" each "+fqty+" "+fprice+"r"
}
}
document.sendit.sdata.value+="Total 
Amount="+document.myform.totamt.value
}
</script>
</head>
<body bgcolor="lightgreen">
<center>
<br>
<h2>Oder Form</h2>
<br>
ITEM         SIZE/SHAPE           
  QTY     PRICE    
<form name="myform">
<input type="radio" name="item0" value="Paper Clips"> Paper Clips
<select name="szeshp0" onchange="qtyreset(‘0’)">
<option value="Small Paper Clips ,2.53" selected>Small Paper 
Clips</option>
<option value="Large Paper Clips ,3.45">Large Paper Clips</option>
</select>
<select name="qty0" onchange="calcamt(‘0’)">
<option value="0" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="text" name="price0" value="0.00" size="10" onfocus="this.blur ()">
<br><br>
<input type="radio" name="item1" value="Pencils "> Pencils     
 
<select name="szeshp1" onchange="qtyreset(‘1’)">
<option value="No2 Pencils ,1.23" selected>No2 Pencils   
      </option>
<option value="No4 Pencils ,1.74">No4 Pencils </option>
</select>
<select name="qty1" onchange="calcamt(‘1’)">
<option value="0" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="text" name="price1" value="0.00" size="10" onfocus="this.blur ()">
<br><br>
<input type="radio" name="item2" value="Staples "> Staples     
 
<select name="szeshp2" onchange="qtyreset(‘2’)">
<option value="Small Staples ,2.12" selected>Small Staples 
</option>
<option value="Large Staples ,2.34">Large Staples     
  </option>
</select>
<select name="qty2" onchange="calcamt(‘2’)">
<option value="0" selected>0</option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="text" name="price2" value="0.00" size="10" onfocus="this.blur ()">
<br><br>
Total
<input type="text" name="totamt" size="10" onfocus="this.blur()">
</form>
<form name="sendit" method="post" action="mailto:[email protected]?subject=Order 
Form" enctype="text/plain" onsubmit="return Formcheck()">
<input type="hidden" name="sdata"> 
<input type="submit" value="Send It">   <input type="reset" 
value="Clear Form" onClick="document.myform.reset()">
</form>
</center> 
</body>
</html>
Q. I am trying to set up a form. Is there a way to force the "To:"
address? I’ve set up the action="mailto:###", but when I test the form my email
keeps opening with all the text filled in, but the "To:" space is blank.
A. The problem is the newer browsers don’t support e-mail forms. You have
to use a server side script. Your web host may have something you can use. There
are also the Perl and ASP tutorials on the site (https://www.htmlgoodies.com)
which will help. Check with your web host to find out what languages they
support.
[See also
https://www.htmlgoodies.com/articles/emailforms1.html 
and
https://www.htmlgoodies.com/articles/emailformphp.html  — Ed.]
Q. How do I make three tables all on the same line with a space between
them?
A. You make one large table at 100 percent width and a border of zero,
with one row then add your three tables in the large tables <td> tags. Play
around with the <td> widths to get the size you need. You can add a couple <td>
tags with the code   which is just a blank space to make some space between
the 3 tables. Here is a example of the code:
<table summary="large table" align="center" width="100%" border="0" 
cellspacing="0" cellpadding="0">
<tr>
<td width="30%">
<table summary="Menu Table" width="100%" border="1" cellspacing="0" 
cellpadding="0">
<tr align="center"><td>Menu</td></tr>
</table>
</td>
<td width="5%"> </td>
<td width="30%">
<table summary="Main Table" width="100%" border="1" cellspacing="0" 
cellpadding="0">
<tr align="center"><td>Main</td></tr>
</table>
</td>
<td width="5%"> </td>
<td width="30%">
<table summary="New Menu Table" width="100%" border="1" 
cellspacing="0" cellpadding="0">
<tr align="center"><td>New Menu</td></tr>
</table>
</td>
</tr>
</table>
.
Q. Is there a way to create a menu of hyperlinks over an image? I want a
text menu over my left margin images without having to create image links.
A. Use the image as the background of a table cell and place the links in
the table cell.
Q. When making an ordered list, is there a way to make the numbers of the
ordered list bold without making the entire content of the ordered list bold?
A. Yes, put bold tags around the li tags. <b><li></b>
 
News Goodies
					Microsoft Highlights New Developer Tools
                [May 24, 2004] TechEd: CEO Steve Ballmer promises security,
                interoperability and a lot less coding with Visual Studio 2005. 
    Click
						here to read the article
    OSDL to Document Linux Contributions
    [May 24, 2004] UPDATED: Linus Torvalds adopts new documentation step, and
    offers some choice words in a request for discussion about the move.
Click here to read the article
    Study: Internet Advertising Sets New Record
    [May 24, 2004] Internet advertising revenues rose to an all-time quarterly
    high of nearly $2.3 billion in the first quarter of 2004, according to
    research estimates from the Interactive Advertising Bureau (IAB) and
    PricewaterhouseCoopers (PwC).
    Click
						here to read the article
                Latest MySQL Fails to Quiet Licensing Critics
                [May 24, 2004] PHP and Zend co-founders say FOSS licensing
                exception does not solve lingering issues.
Click here to read the article
                    Microsoft Locks Up OEM Support for NAS
                    [May 24, 2004] Key partners are to add the Microsoft Storage
                    Server feature pack to their network attached storage
                    devices.
            Click here to read the article
 
    AMD Revitalizes its Geode Family
    [May 24, 2004] The No. 2 chipmaker announces a new line of low power
    embedded processors complete with a new rating system.
Click here to read the article
    Security to Dominate at Microsoft’s TechEd
    [May 21, 2004] The topic will be everywhere, from chief executive Steve
    Ballmer’s opening keynote to the individual breakout sessions.
Click here to read the article
    
    
    Oracle, PeopleSoft CEOs File Depositions
    [May 21, 2004] Ellison and Conway answer their subpoenas, as lawyers for
    third-party rivals haggle over releasing sensitive corporate documents.
Click here to read the article
    PalmOne Graffiti Is No Infringement
    [May 21, 2004] A U.S. Court invalidates Xerox Corp.’s patent on
    single-stroke writing.
Click here to read the article
    
     
    A New Era Of SOA: Sun and Microsoft 
    [May 21, 2004] Publicly, the two sides are quiet, but backroom planning on
    service oriented architectures is fueling their 10-year interoperability
    roadmap.
Click here to read the article
                    Every week a site is selected  for review. Each week,
                    reviews of the previous week’s selected site are chosen for
                    publication on the HTML Goodies website.
                    The current week’s selected site is published in Goodies To
                    Go and in the Peer Reviews section of the website. 
                    Current contact email addresses for submitting your site and
                    for submitting reviews are published in Goodies To Go.
                    If you would like to have your site reviewed, sign up for
                    the Goodies To Go newsletter in the Navigation Bar on the
                    left side of this page.  
                    For full details about this program, see
                    
                    https://www.htmlgoodies.com/peerreviews 
 
						Did you ever wish your newsletter was an easy two way communications medium?
						Ploof! It now is!
						If you would like to comment on the newsletter or expand/improve on something
						you have seen in here, you can now send your input to:
						We already receive a lot of email every day. This address will help us sort out
						those relating specifically to this newsletter from all the rest. When you send
						email to this address it may wind up being included in this section of the
						newsletter, to be shared with your fellow readers.
            Please don’t send your questions to this address.
            They should be sent to our mentors: see
            https://www.htmlgoodies.com/mentors/ 
                    For those who are missing Peer reviews: we are once again
                    revising the Peer review program in the hopes of creating a
                    workable solution. The current plan is to move the new Peer
                    Review pages into place in the new year. All those who have
                    been selected for reviews in the past will be featured in
                    the new pages. The new method will make it much easier for
                    your peers to provide feedback and much easier for us to
                    handle the publication side of things. "Watch this space!"
                    It’s coming soon!! 
                    Thanks to Gil Heuss for writing in about the Subweb Way
                    piece. Gil wants to point out the Macromedia’s product
                    "Contribute" will provide much of the same functionality I
                    described, but doesn’t require the FrontPage Extensions. Gil
                    goes on to say that thus "the site can be run on a unix box
                    running Apache server software giving a much more stable and
                    secure environment for the website" — I’d like to point out
                    that the FrontPage Extensions are also available for Apache
                    on either a Windows or a Linux/Unix platform, and also, you
                    might want to take a look at
                    
                    http://www.enterpriseitplanet.com/security/features/article.php/3083791 
                    — the folks over at AntiOnline spend a good deal of time
                    and effort sifting fact from fiction in the realm of
                    security!
                    Thanks again for all your feedback!
                     
Top
                    
 
                    
                    Windows Tech Goodie of the Week:
SharePoint Security and .NET Impersonation
                    
                    http://www.15seconds.com/issue/040511.htm 
                    When implementing custom components that require access to
                    restricted resources, implicit impersonation must be used.
                    Jay Nathan shows how to create a class that makes using .NET
                    Impersonation a snap.
*** AND ***
                    XML to HTML (via XSL) Classic ASP Sample
                    
                    
                    http://www.asp101.com/samples/xmlxsl.asp 
                    This little script will take an XML file and an XSL file and
                    combine them to produce whatever output you want. The sample
                    files I used contain some fake sample data and convert it to
                    a basic HTML table, but you can use the same code to
                    transform your data into whatever you want… just change
                    the stylesheet.
Top
And Remember This . . .
On this day in…
			
            1941 The Bismark Sank HMS Hood
            Hitler’s most modern warship, DKM Bismark, fired its 38cm canons and
            penetrated the citadel armor of HMS Hood, the largest of Britains
            battle cruisers and the pride of the British fleet. The shells
            exploded in one of the Hood’s ammunition stores which in turn
            exploded, tearing the ship in two. More than 1,400 died on the ship
            — there were three survivors. British cruisers had located the
            Bismark northeast of Iceland and at 5:52 am the Hood opened fire on
            the Bismark. Bismark returned fire and at 6:00 am hit the munitions
            store. The hood sank in less than two minutes. DKM Bismark had been
            damaged badly, however, and was losing fuel. Admiral Gunther Lutjens,
            commander in chief of the German Fleet, tried to get her to the
            French coast but she was sighted again by British ships three days
            later. She was surrounded by a ring of warships and destroyed. 2,300
            men, including Lutjens, perished aboard the Bismark.
            Today was also the day that in: 1626 Peter Minuit bought
            Manhatten Island from the indiginous Canarsee Delawares for "the
            value of 60 Guilders" (about $24); 1689 the English
            Parliament guaranteed freedom of religion for Protestants; 1809
            Dartmoor Prison in England was opened to house French prisoners of
            war; 1844 Samual Morse tapped out "What hath God wrought?" as
            the first telegraph message; 1862 Westminster Bridge in
            London was opened; 1883 the Brooklyn Bridge in New York was
            opened; 1890 Caprivi succeeded Bismark as Chancellor of
            Germany; 1900 Britain annexed the Orange Free State; 1902
            Britain first celebrated Empire Day; 1916 first day of
            conscritpion in England; 1935 Swedish Princess Ingrid and
            Danish Crown Prince Frederick (IX) were married; 1944 Iceland
            voted to sever all ties with Denmark; 1954 IBM announced a
            vacuum tube "electronic brain" that could perform 10 million
            operations per hour (in a PC, 1 megahertz is one million operations
            per second); 1959 Britain renamed Empire Day to Commonwealth
            Day; 1968 Mick Jagger and Marianne Faithful were arrested for
            drug posession; 1976 Concorde made the first commercial SST
            flight to the US (Washington DC); 1985 10,000 died when a
            cyclone hit Bangladesh; 1993 Eritrea achieved independence
            from Ethiopia after 30-year civil war; 1997 actor Tim Allen
            was arrested for DUI in Michigan;
            Born today were: in 1605 patriarch of the Russian Orthodox
            church, Nikon (Nikita Minin); 1819 British Queen Victoria; 
            1850 water-color painter Ernest Albert Waterlow (really, that is
            his name & that’s what he did – check out
            
            http://www.fineartdealers.co.uk/stock/moreinfo.php3?modcar=93);
            1904 British comedian/singer George Formby (William Booth);
            1905 Russian writer & Nobel prize winner Mikhail Sholokhov;
            1912 British soprano Joan Hammond; 1941
            singer/songwriter Robert Zimmerman (Bob Dylan); 1943 actor
            Gary Burghoff; 1944 singer Patti LaBelle (Patti Holt);
            1945 actress Priscilla Presley; 1949 musician John
            Illsley (Dire Straits); 1955 country singer Rosanne Cash; 
            1963 actor/dancer Gene Anthony Ray (Fame); 1970 singer
            Tommy Page; 
			
                    
Thanks for reading Goodies to Go!


