[Webtest] Web test woes

Derek Clarkson webtest@lists.canoo.com
Fri, 25 Feb 2005 10:55:02 +1100


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C51ACC.414245C0
Content-Type: text/plain


Hi,

> Well, it's htmlunit actually, not httpUnit. I hope your computer did not
melt-down :-) 

Doh ! ;-)

> Have you checked on the htmlunit site, whether "status" is supported for
"Window" ? 
 
Looks like it's in the next release. 

Could I suggest a change, not sure if this would be to htmlunit or canoo
though. When I'm writing tools I always try to make them do two things in an
error situation. One is to give the user the things they need to move ahead,
the other is to give the programmers the information they need to fix the
bug or handle the situation. Having the software crash out with an exception
is helpful to you guys trying to create the product, but is frustrating to
people like myself trying to use it. Could a generic exception handler be
implemented which allows canoo to gracefully finish. Most importantly to
finish logging the html being processed so that I can see where it's at,
before then dumping out the exception details. I know how to read exceptions
because I write lots of java code, but there are probably people using canoo
who don't and cannot easily figure out what the problem might be. They are
more likley to want to see what the last line of the web page was that
caused the crash because that will allow them to pin point the dodgy code.

The other thing that you might want to specifically catch are exceptions
that indicate things that are not supported so that a message can be logged
instead - "Function x.y() not support by canoo/htmlunit". This would really
help with the exceptions I was getting.

> There is something "special" about your frame that htmlunit doesn't
understand.Can you provide the html souce? 

I've posted it below. It could be that the site uses 2 layers of frames -
ugg!

> It may be that HtmlUnit (and thus WebTest) currently do not provide all
features that you would like to see in order to test your "particularly
badly written site". But taking this as a sign of "immature code" is a
rather long throw.

True, sorry - was a bit grumpy when I wrote that after 2 hours of not
working and crashes ;-)

Ciao
Derek.


------------- FRAME CODE BEGINS ---------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML>
  <HEAD>
  <TITLE>Lonely Planet Images - Stock Photography - Stock Photos - Travel
Related Images.</TITLE>
  <META NAME="keywords" CONTENT="adventure, advertising, brochure, business
graphics, catalogue, culture, design, destinations, digital, downloadable,
editorial, high quality, image licencing, landscapes, lifestyle, lonely
planet images, media, nature photos, online images, outdoors, photography,
photo library, people, pictorial, pictures, publishing, rights protected,
stock agencies, stock photos, stock photography travel related images,
tourism, travel, underwater, unique, web graphics, wildlife">
  <META http-equiv="Content-Style-Type" content="text/css">
  <META NAME="author" CONTENT="Vance Heredia">
  <META NAME="description" CONTENT="Search and licence images from our
unique collection of travel related stock photography taken by the best
travel photographers in the business. Use our quick and easy search facility
to find stock photography for all your business needs">
  </HEAD>

  <FRAMESET rows="98,*,35" frameborder="0" FRAMESPACING="0" border="0">
	 <FRAME name="header" src='/header.htm' marginwidth="0"
marginheight="0" scrolling="no" frameborder="no" noresize FRAMESPACING="0"
BORDER="0">
	 <FRAME name="main" src='/index.jsp' marginwidth="0"
marginheight="0" scrolling="auto" frameborder="no" FRAMESPACING="0"
BORDER="0">
	 <FRAME name="footer" src='/footer.htm' marginwidth="0"
marginheight="0" scrolling="no" frameborder="no" FRAMESPACING="0"
BORDER="0">
	 <NOFRAMES>
<body>

<h1 align="center"><b><font color="#666699" face="Verdana"
size="5"><em>Stock photography</em> brought to you by Lonely Planet Images -
a
world class library of travel related stock photography
images.</font></b></h1>

... More text here ....

</body>

	 </NOFRAMES>
  </FRAMESET>
</HTML>

---------------- But I think this code from header.htm is the problem
--------------

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<HTML>

  <HEAD>

    <META name="GENERATOR" content="IBM WebSphere Page Designer V3.5.1 for
Windows">

    <META http-equiv="Content-Style-Type" content="text/css">

    <TITLE>Header Template</TITLE>

<!-- header.htm -->

    <SCRIPT language="JavaScript">

<!--

function Hilite(){

}

function Normal(){

}

function LockHilite(){

}

//-->

    </SCRIPT>

    <SCRIPT language="JavaScript1.1">

<!--

// preload images. Only supports Netscape 3.0 and later and MSIE 4.0 &
later.

var buttons = ['tips', 'contact_us', 'about', 'library', 'photo'];

var count = buttons.length;

var off = new Array(count);

var on = new Array(count);

var over = new Array(count);

var status = new Array(count);

status[0] = new String("Tips");

status[1] = new String("Contact Us");

status[2] = new String("About Us");

status[3] = new String("Library");

status[4] = new String("Photographer");



for (var inx = 0; inx < count; inx++) {

  on[inx] = new Image(100,20);

  on[inx].src = "images/buttons/" + buttons[inx] + "_on.gif";

  over[inx] = new Image(100,20);

  over[inx].src = "images/buttons/" + buttons[inx] + "_over.gif";

  off[inx] = new Image(100,20);

  off[inx].src = "images/buttons/" + buttons[inx] + "_off.gif";

}



var lit;

var litIndex;



function Hilite(index){

  if (!(buttons[index]==lit)){

    document.images[buttons[index]].src = over[index].src;

  }

  window.status=status[index];

}



function Normal(index){

  if (!(buttons[index]==lit)){

    document.images[buttons[index]].src = off[index].src;

  }

  window.status='';

}



function LockHilite(index){

  if (lit)

    document.images[lit].src = off[litIndex].src;

  document.images[buttons[index]].src = on[index].src;

  lit = buttons[index];

  litIndex = index;

}

//-->

    </SCRIPT>

  </HEAD>

  <BODY bgcolor="#ffffff" marginheight="0" marginwidth="0"
background="images/background_header.gif">

    <TABLE width="100%" border="0" cellspacing="0" cellpadding="0">

      <TR>

        <TD valign="bottom" align="left" colspan="2">

          <TABLE width="550" border="0" cellspacing="0" cellpadding="0">

            <TR>

              <TD rowspan="3" valign="bottom" align="left"><A
href="/index.jsp" target="main" onclick="if (lit) document.images[lit].src =
off[litIndex].src;"><IMG src="images/lpi_header.gif" name="lpi_header"
width="245" height="57" border="0" alt="Lonely Planet Images"></A></TD>

              <TD colspan="10" bgcolor="#99CC00"><IMG
src="images/spacer.gif" width="1" height="17"></TD>

            </TR>

            <TR>

              <TD colspan="5" bgcolor="#99CC00">&nbsp;</TD>

              <TD valign="bottom" align="right" bgcolor="#99CC00"><IMG
src="images/line.gif" width="1" height="20"></TD>

              <TD valign="bottom"><A href="frame_tips.htm" target="main"
onmouseout="Normal(0);" onmouseover="Hilite(0);"
onclick="LockHilite(0)"><IMG src="images/buttons/tips_off.gif" name="tips"
width="75" height="20" border="0" alt="Tips &amp; Help"></A></TD>

              <TD valign="bottom"><IMG src="images/break_small_white.gif"
name="cut_r3_c05" width="10" height="20" border="0" alt="Blank"></TD>

              <TD valign="bottom"><A href="frame_feedback.htm" target="main"
onmouseout="Normal(1);" onmouseover="Hilite(1);"
onclick="LockHilite(1)"><IMG src="images/buttons/contact_us_off.gif"
name="contact_us" width="75" height="20" border="0" alt="Contact
Us"></A></TD>

              <TD valign="bottom"><IMG src="images/break_white.gif"
name="cut_r2_c12" width="71" height="20" border="0" alt="Blank"></TD>

            </TR>

            <TR>

              <TD valign="bottom"><IMG src="images/break_grey.gif"
name="cut_r3_c03" width="61" height="20" border="0" alt="Blank"></TD>

              <TD valign="bottom"><A href="frame_aboutus.htm" target="main"
onmouseout="Normal(2);" onmouseover="Hilite(2);"
onclick="LockHilite(2)"><IMG src="images/buttons/about_off.gif" name="about"
width="92" height="20" alt="About Us" border="0"></A></TD>

              <TD valign="bottom"><IMG src="images/break_small_white.gif"
name="cut_r3_c05" width="10" height="20" border="0" alt="Blank"></TD>

              <TD valign="bottom"><A href="/library/library_frame.html"
target="main" onmouseout="Normal(3);" onmouseover="Hilite(3);"
onclick="LockHilite(3)"><IMG src="images/buttons/library_off.gif"
name="library" width="92" height="20" border="0" alt="Library"></A></TD>

              <TD valign="bottom"><IMG src="images/break_small_white.gif"
name="cut_r3_c05" width="10" height="20" border="0" alt="Blank"></TD>

              <TD valign="bottom"><A href="frame_photo.jsp" target="main"
onmouseout="Normal(4);" onmouseover="Hilite(4);"
onclick="LockHilite(4)"><IMG src="images/buttons/photo_off.gif" name="photo"
width="92" height="20" border="0" alt="Photographers"></A></TD>

              <TD colspan="4" bgcolor="#FFFFFF">&nbsp;</TD>

            </TR>

          </TABLE>

        </TD>

      </TR>

      <TR bgcolor="#FFFFFF">

        <TD colspan="2"><IMG src="/images/new_base.gif" width="719"
height="42" usemap="#lpurl" border="0"><MAP name="lpurl"> <AREA shape="rect"
coords="645,2,718,40" href="http://www.lonelyplanet.com" target="_blank"
alt="go to the Lonely Planet web site" title="go to the Lonely Planet web
site"></MAP></TD>

      </TR>

    </TABLE>

    <P></P>

  </BODY>

</HTML>



______________________________________________________________________
This email, including attachments, is intended only for the addressee
and may be confidential, privileged and subject to copyright.  If you
have received this email in error, please advise the sender and delete
it.  If you are not the intended recipient of this email, you must not
use, copy or disclose its content to anyone.  You must not copy or 
communicate to others content that is confidential or subject to 
copyright, unless you have the consent of the content owner.
------_=_NextPart_001_01C51ACC.414245C0
Content-Type: text/html
Content-Transfer-Encoding: quoted-printable

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN">
<HTML>
<HEAD>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; charset=
=3DUS-ASCII">
<META NAME=3D"Generator" CONTENT=3D"MS Exchange Server version=
 5.5.2654.45">
<TITLE>RE: [Webtest] Web test woes</TITLE>
</HEAD>
<BODY>

<P><FONT SIZE=3D2>Hi,</FONT>
</P>

<P><FONT SIZE=3D2>&gt; Well, it's htmlunit actually, not httpUnit. I hope=
 your computer did not melt-down :-) </FONT>
</P>

<P><FONT SIZE=3D2>Doh ! ;-)</FONT>
</P>

<P><FONT SIZE=3D2>&gt; Have you checked on the htmlunit site, whether=
 &quot;status&quot; is supported for &quot;Window&quot; ? </FONT>
<BR><FONT SIZE=3D2>&nbsp;</FONT>
<BR><FONT SIZE=3D2>Looks like it's in the next release. </FONT>
</P>

<P><FONT SIZE=3D2>Could I suggest a change, not sure if this would be to=
 htmlunit or canoo though. When I'm writing tools I always try to make them=
 do two things in an error situation. One is to give the user the things=
 they need to move ahead, the other is to give the programmers the=
 information they need to fix the bug or handle the situation. Having the=
 software crash out with an exception is helpful to you guys trying to=
 create the product, but is frustrating to people like myself trying to use=
 it. Could a generic exception handler be implemented which allows canoo to=
 gracefully finish. Most importantly to finish logging the html being=
 processed so that I can see where it's at, before then dumping out the=
 exception details. I know how to read exceptions because I write lots of=
 java code, but there are probably people using canoo who don't and cannot=
 easily figure out what the problem might be. They are more likley to want=
 to see what the last line of the web page was that caused the crash=
 because that will allow them to pin point the dodgy code.</FONT></P>

<P><FONT SIZE=3D2>The other thing that you might want to specifically catch=
 are exceptions that indicate things that are not supported so that a=
 message can be logged instead - &quot;Function x.y() not support by=
 canoo/htmlunit&quot;. This would really help with the exceptions I was=
 getting.</FONT></P>

<P><FONT SIZE=3D2>&gt; There is something &quot;special&quot; about your=
 frame that htmlunit doesn't understand.Can you provide the html souce?=
 </FONT>
</P>

<P><FONT SIZE=3D2>I've posted it below. It could be that the site uses 2=
 layers of frames - ugg!</FONT>
</P>

<P><FONT SIZE=3D2>&gt; It may be that HtmlUnit (and thus WebTest) currently=
 do not provide all features that you would like to see in order to test=
 your &quot;particularly badly written site&quot;. But taking this as a=
 sign of &quot;immature code&quot; is a rather long throw.</FONT></P>

<P><FONT SIZE=3D2>True, sorry - was a bit grumpy when I wrote that after 2=
 hours of not working and crashes ;-)</FONT>
</P>

<P><FONT SIZE=3D2>Ciao</FONT>
<BR><FONT SIZE=3D2>Derek.</FONT>
</P>
<BR>

<P><FONT SIZE=3D2>------------- FRAME CODE BEGINS ---------------</FONT>
</P>

<P><FONT SIZE=3D2>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0=
 Transitional//EN&quot;&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;HTML&gt;</FONT>
<BR><FONT SIZE=3D2>&nbsp; &lt;HEAD&gt;</FONT>
<BR><FONT SIZE=3D2>&nbsp; &lt;TITLE&gt;Lonely Planet Images - Stock=
 Photography - Stock Photos - Travel Related Images.&lt;/TITLE&gt;</FONT>
<BR><FONT SIZE=3D2>&nbsp; &lt;META NAME=3D&quot;keywords&quot; CONTENT=
=3D&quot;adventure, advertising, brochure, business graphics, catalogue,=
 culture, design, destinations, digital, downloadable, editorial, high=
 quality, image licencing, landscapes, lifestyle, lonely planet images,=
 media, nature photos, online images, outdoors, photography, photo library,=
 people, pictorial, pictures, publishing, rights protected, stock agencies,=
 stock photos, stock photography travel related images, tourism, travel,=
 underwater, unique, web graphics, wildlife&quot;&gt;</FONT></P>

<P><FONT SIZE=3D2>&nbsp; &lt;META http-equiv=
=3D&quot;Content-Style-Type&quot; content=3D&quot;text/css&quot;&gt;</FONT>
<BR><FONT SIZE=3D2>&nbsp; &lt;META NAME=3D&quot;author&quot; CONTENT=
=3D&quot;Vance Heredia&quot;&gt;</FONT>
<BR><FONT SIZE=3D2>&nbsp; &lt;META NAME=3D&quot;description&quot; CONTENT=
=3D&quot;Search and licence images from our unique collection of travel=
 related stock photography taken by the best travel photographers in the=
 business. Use our quick and easy search facility to find stock photography=
 for all your business needs&quot;&gt;</FONT></P>

<P><FONT SIZE=3D2>&nbsp; &lt;/HEAD&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; &lt;FRAMESET rows=3D&quot;98,*,35&quot;=
 frameborder=3D&quot;0&quot; FRAMESPACING=3D&quot;0&quot; border=
=3D&quot;0&quot;&gt;</FONT>
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT SIZE=3D2>=
 &lt;FRAME name=3D&quot;header&quot; src=3D'/header.htm' marginwidth=
=3D&quot;0&quot; marginheight=3D&quot;0&quot; scrolling=3D&quot;no&quot;=
 frameborder=3D&quot;no&quot; noresize FRAMESPACING=3D&quot;0&quot; BORDER=
=3D&quot;0&quot;&gt;</FONT></P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT SIZE=3D2>=
 &lt;FRAME name=3D&quot;main&quot; src=3D'/index.jsp' marginwidth=
=3D&quot;0&quot; marginheight=3D&quot;0&quot; scrolling=3D&quot;auto&quot;=
 frameborder=3D&quot;no&quot; FRAMESPACING=3D&quot;0&quot; BORDER=
=3D&quot;0&quot;&gt;</FONT></P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT SIZE=3D2>=
 &lt;FRAME name=3D&quot;footer&quot; src=3D'/footer.htm' marginwidth=
=3D&quot;0&quot; marginheight=3D&quot;0&quot; scrolling=3D&quot;no&quot;=
 frameborder=3D&quot;no&quot; FRAMESPACING=3D&quot;0&quot; BORDER=
=3D&quot;0&quot;&gt;</FONT></P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT SIZE=3D2>=
 &lt;NOFRAMES&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;body&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&lt;h1 align=3D&quot;center&quot;&gt;&lt;b&gt;&lt;font=
 color=3D&quot;#666699&quot; face=3D&quot;Verdana&quot; size=
=3D&quot;5&quot;&gt;&lt;em&gt;Stock photography&lt;/em&gt; brought to you=
 by Lonely Planet Images - a</FONT></P>

<P><FONT SIZE=3D2>world class library of travel related stock photography=
 images.&lt;/font&gt;&lt;/b&gt;&lt;/h1&gt;</FONT>
</P>

<P><FONT SIZE=3D2>... More text here ....</FONT>
</P>

<P><FONT SIZE=3D2>&lt;/body&gt;</FONT>
</P>

<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<FONT SIZE=3D2>=
 &lt;/NOFRAMES&gt;</FONT>
<BR><FONT SIZE=3D2>&nbsp; &lt;/FRAMESET&gt;</FONT>
<BR><FONT SIZE=3D2>&lt;/HTML&gt;</FONT>
</P>

<P><FONT SIZE=3D2>---------------- But I think this code from header.htm is=
 the problem --------------</FONT>
</P>

<P><FONT SIZE=3D2>&lt;!DOCTYPE HTML PUBLIC &quot;-//W3C//DTD HTML 4.0=
 Transitional//EN&quot;&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&lt;HTML&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; &lt;HEAD&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; &lt;META name=3D&quot;GENERATOR&quot;=
 content=3D&quot;IBM WebSphere Page Designer V3.5.1 for=
 Windows&quot;&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; &lt;META http-equiv=
=3D&quot;Content-Style-Type&quot; content=3D&quot;text/css&quot;&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; &lt;TITLE&gt;Header=
 Template&lt;/TITLE&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&lt;!-- header.htm --&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; &lt;SCRIPT language=
=3D&quot;JavaScript&quot;&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&lt;!--</FONT>
</P>

<P><FONT SIZE=3D2>function Hilite(){</FONT>
</P>

<P><FONT SIZE=3D2>}</FONT>
</P>

<P><FONT SIZE=3D2>function Normal(){</FONT>
</P>

<P><FONT SIZE=3D2>}</FONT>
</P>

<P><FONT SIZE=3D2>function LockHilite(){</FONT>
</P>

<P><FONT SIZE=3D2>}</FONT>
</P>

<P><FONT SIZE=3D2>//--&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; &lt;/SCRIPT&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; &lt;SCRIPT language=
=3D&quot;JavaScript1.1&quot;&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&lt;!--</FONT>
</P>

<P><FONT SIZE=3D2>// preload images. Only supports Netscape 3.0 and later=
 and MSIE 4.0 &amp; later.</FONT>
</P>

<P><FONT SIZE=3D2>var buttons =3D ['tips', 'contact_us', 'about',=
 'library', 'photo'];</FONT>
</P>

<P><FONT SIZE=3D2>var count =3D buttons.length;</FONT>
</P>

<P><FONT SIZE=3D2>var off =3D new Array(count);</FONT>
</P>

<P><FONT SIZE=3D2>var on =3D new Array(count);</FONT>
</P>

<P><FONT SIZE=3D2>var over =3D new Array(count);</FONT>
</P>

<P><FONT SIZE=3D2>var status =3D new Array(count);</FONT>
</P>

<P><FONT SIZE=3D2>status[0] =3D new String(&quot;Tips&quot;);</FONT>
</P>

<P><FONT SIZE=3D2>status[1] =3D new String(&quot;Contact Us&quot;);</FONT>
</P>

<P><FONT SIZE=3D2>status[2] =3D new String(&quot;About Us&quot;);</FONT>
</P>

<P><FONT SIZE=3D2>status[3] =3D new String(&quot;Library&quot;);</FONT>
</P>

<P><FONT SIZE=3D2>status[4] =3D new=
 String(&quot;Photographer&quot;);</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=3D2>for (var inx =3D 0; inx &lt; count; inx++) {</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; on[inx] =3D new Image(100,20);</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; on[inx].src =3D &quot;images/buttons/&quot; +=
 buttons[inx] + &quot;_on.gif&quot;;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; over[inx] =3D new Image(100,20);</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; over[inx].src =3D &quot;images/buttons/&quot; +=
 buttons[inx] + &quot;_over.gif&quot;;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; off[inx] =3D new Image(100,20);</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; off[inx].src =3D &quot;images/buttons/&quot; +=
 buttons[inx] + &quot;_off.gif&quot;;</FONT>
</P>

<P><FONT SIZE=3D2>}</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=3D2>var lit;</FONT>
</P>

<P><FONT SIZE=3D2>var litIndex;</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=3D2>function Hilite(index){</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; if (!(buttons[index]=3D=3Dlit)){</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; document.images[buttons[index]].src =
=3D over[index].src;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; }</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; window.status=3Dstatus[index];</FONT>
</P>

<P><FONT SIZE=3D2>}</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=3D2>function Normal(index){</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; if (!(buttons[index]=3D=3Dlit)){</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; document.images[buttons[index]].src =
=3D off[index].src;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; }</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; window.status=3D'';</FONT>
</P>

<P><FONT SIZE=3D2>}</FONT>
</P>
<BR>
<BR>

<P><FONT SIZE=3D2>function LockHilite(index){</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; if (lit)</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; document.images[lit].src =3D=
 off[litIndex].src;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; document.images[buttons[index]].src =3D=
 on[index].src;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; lit =3D buttons[index];</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; litIndex =3D index;</FONT>
</P>

<P><FONT SIZE=3D2>}</FONT>
</P>

<P><FONT SIZE=3D2>//--&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; &lt;/SCRIPT&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; &lt;/HEAD&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; &lt;BODY bgcolor=3D&quot;#ffffff&quot;=
 marginheight=3D&quot;0&quot; marginwidth=3D&quot;0&quot; background=
=3D&quot;images/background_header.gif&quot;&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; &lt;TABLE width=3D&quot;100%&quot;=
 border=3D&quot;0&quot; cellspacing=3D&quot;0&quot; cellpadding=
=3D&quot;0&quot;&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TR&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD valign=
=3D&quot;bottom&quot; align=3D&quot;left&quot; colspan=
=3D&quot;2&quot;&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 &lt;TABLE width=3D&quot;550&quot; border=3D&quot;0&quot; cellspacing=
=3D&quot;0&quot; cellpadding=3D&quot;0&quot;&gt;</FONT>
</P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 &lt;TR&gt;</FONT>
</P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD rowspan=3D&quot;3&quot; valign=3D&quot;bottom&quot; align=
=3D&quot;left&quot;&gt;&lt;A href=3D&quot;/index.jsp&quot; target=
=3D&quot;main&quot; onclick=3D&quot;if (lit) document.images[lit].src =3D=
 off[litIndex].src;&quot;&gt;&lt;IMG src=
=3D&quot;images/lpi_header.gif&quot; name=3D&quot;lpi_header&quot; width=
=3D&quot;245&quot; height=3D&quot;57&quot; border=3D&quot;0&quot; alt=
=3D&quot;Lonely Planet Images&quot;&gt;&lt;/A&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD colspan=3D&quot;10&quot; bgcolor=
=3D&quot;#99CC00&quot;&gt;&lt;IMG src=3D&quot;images/spacer.gif&quot; width=
=3D&quot;1&quot; height=3D&quot;17&quot;&gt;&lt;/TD&gt;</FONT>
</P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 &lt;/TR&gt;</FONT>
</P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 &lt;TR&gt;</FONT>
</P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD colspan=3D&quot;5&quot; bgcolor=
=3D&quot;#99CC00&quot;&gt;&amp;nbsp;&lt;/TD&gt;</FONT>
</P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot; align=3D&quot;right&quot;=
 bgcolor=3D&quot;#99CC00&quot;&gt;&lt;IMG src=3D&quot;images/line.gif&quot;=
 width=3D&quot;1&quot; height=3D&quot;20&quot;&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot;&gt;&lt;A href=
=3D&quot;frame_tips.htm&quot; target=3D&quot;main&quot; onmouseout=
=3D&quot;Normal(0);&quot; onmouseover=3D&quot;Hilite(0);&quot; onclick=
=3D&quot;LockHilite(0)&quot;&gt;&lt;IMG src=
=3D&quot;images/buttons/tips_off.gif&quot; name=3D&quot;tips&quot; width=
=3D&quot;75&quot; height=3D&quot;20&quot; border=3D&quot;0&quot; alt=
=3D&quot;Tips &amp;amp; Help&quot;&gt;&lt;/A&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot;&gt;&lt;IMG src=
=3D&quot;images/break_small_white.gif&quot; name=3D&quot;cut_r3_c05&quot;=
 width=3D&quot;10&quot; height=3D&quot;20&quot; border=3D&quot;0&quot; alt=
=3D&quot;Blank&quot;&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot;&gt;&lt;A href=
=3D&quot;frame_feedback.htm&quot; target=3D&quot;main&quot; onmouseout=
=3D&quot;Normal(1);&quot; onmouseover=3D&quot;Hilite(1);&quot; onclick=
=3D&quot;LockHilite(1)&quot;&gt;&lt;IMG src=
=3D&quot;images/buttons/contact_us_off.gif&quot; name=
=3D&quot;contact_us&quot; width=3D&quot;75&quot; height=3D&quot;20&quot;=
 border=3D&quot;0&quot; alt=3D&quot;Contact=
 Us&quot;&gt;&lt;/A&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot;&gt;&lt;IMG src=
=3D&quot;images/break_white.gif&quot; name=3D&quot;cut_r2_c12&quot; width=
=3D&quot;71&quot; height=3D&quot;20&quot; border=3D&quot;0&quot; alt=
=3D&quot;Blank&quot;&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 &lt;/TR&gt;</FONT>
</P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 &lt;TR&gt;</FONT>
</P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot;&gt;&lt;IMG src=
=3D&quot;images/break_grey.gif&quot; name=3D&quot;cut_r3_c03&quot; width=
=3D&quot;61&quot; height=3D&quot;20&quot; border=3D&quot;0&quot; alt=
=3D&quot;Blank&quot;&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot;&gt;&lt;A href=
=3D&quot;frame_aboutus.htm&quot; target=3D&quot;main&quot; onmouseout=
=3D&quot;Normal(2);&quot; onmouseover=3D&quot;Hilite(2);&quot; onclick=
=3D&quot;LockHilite(2)&quot;&gt;&lt;IMG src=
=3D&quot;images/buttons/about_off.gif&quot; name=3D&quot;about&quot; width=
=3D&quot;92&quot; height=3D&quot;20&quot; alt=3D&quot;About Us&quot; border=
=3D&quot;0&quot;&gt;&lt;/A&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot;&gt;&lt;IMG src=
=3D&quot;images/break_small_white.gif&quot; name=3D&quot;cut_r3_c05&quot;=
 width=3D&quot;10&quot; height=3D&quot;20&quot; border=3D&quot;0&quot; alt=
=3D&quot;Blank&quot;&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot;&gt;&lt;A href=
=3D&quot;/library/library_frame.html&quot; target=3D&quot;main&quot;=
 onmouseout=3D&quot;Normal(3);&quot; onmouseover=3D&quot;Hilite(3);&quot;=
 onclick=3D&quot;LockHilite(3)&quot;&gt;&lt;IMG src=
=3D&quot;images/buttons/library_off.gif&quot; name=3D&quot;library&quot;=
 width=3D&quot;92&quot; height=3D&quot;20&quot; border=3D&quot;0&quot; alt=
=3D&quot;Library&quot;&gt;&lt;/A&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot;&gt;&lt;IMG src=
=3D&quot;images/break_small_white.gif&quot; name=3D&quot;cut_r3_c05&quot;=
 width=3D&quot;10&quot; height=3D&quot;20&quot; border=3D&quot;0&quot; alt=
=3D&quot;Blank&quot;&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD valign=3D&quot;bottom&quot;&gt;&lt;A href=
=3D&quot;frame_photo.jsp&quot; target=3D&quot;main&quot; onmouseout=
=3D&quot;Normal(4);&quot; onmouseover=3D&quot;Hilite(4);&quot; onclick=
=3D&quot;LockHilite(4)&quot;&gt;&lt;IMG src=
=3D&quot;images/buttons/photo_off.gif&quot; name=3D&quot;photo&quot; width=
=3D&quot;92&quot; height=3D&quot;20&quot; border=3D&quot;0&quot; alt=
=3D&quot;Photographers&quot;&gt;&lt;/A&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbs=
p;&nbsp; &lt;TD colspan=3D&quot;4&quot; bgcolor=
=3D&quot;#FFFFFF&quot;&gt;&amp;nbsp;&lt;/TD&gt;</FONT>
</P>

<P><FONT SIZE=
=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 &lt;/TR&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 &lt;/TABLE&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;=
 &lt;/TD&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TR&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TR bgcolor=
=3D&quot;#FFFFFF&quot;&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;TD colspan=
=3D&quot;2&quot;&gt;&lt;IMG src=3D&quot;/images/new_base.gif&quot; width=
=3D&quot;719&quot; height=3D&quot;42&quot; usemap=3D&quot;#lpurl&quot;=
 border=3D&quot;0&quot;&gt;&lt;MAP name=3D&quot;lpurl&quot;&gt; &lt;AREA=
 shape=3D&quot;rect&quot; coords=3D&quot;645,2,718,40&quot; href=3D&quot;<A=
 HREF=3D"http://www.lonelyplanet.com" TARGET=
=3D"_blank">http://www.lonelyplanet.com</A>&quot; target=
=3D&quot;_blank&quot; alt=3D&quot;go to the Lonely Planet web site&quot;=
 title=3D&quot;go to the Lonely Planet web=
 site&quot;&gt;&lt;/MAP&gt;&lt;/TD&gt;</FONT></P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;/TR&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; &lt;/TABLE&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp;&nbsp;&nbsp; &lt;P&gt;&lt;/P&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&nbsp; &lt;/BODY&gt;</FONT>
</P>

<P><FONT SIZE=3D2>&lt;/HTML&gt;</FONT>
</P>

</BODY>
</HTML>
<table><tr><td bgcolor=3D#ffffff><font color=
=3D#000000>________________________________________________________________=
______<br>
This email, including attachments, is intended only for the addressee<br>
and may be confidential, privileged and subject to copyright.  If you<br>
have received this email in error, please advise the sender and delete<br>
it.  If you are not the intended recipient of this email, you must not<br>
use, copy or disclose its content to anyone.  You must not copy or <br>
communicate to others content that is confidential or subject to <br>
copyright, unless you have the consent of the content owner.<br>
</font></td></tr></table>
------_=_NextPart_001_01C51ACC.414245C0--