﻿// JScript File
function printPage()
{
  window.print();
}

function MM_openBrWindow(theURL,winName,features) { //v2.0
  window.open(theURL,winName,features);
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  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_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

function getWindowHeight()
{
  var windowHeight = 0;
  if (typeof(window.innerHeight) == 'number') {
    windowHeight = window.innerHeight;
  }
  else
  {
    if (document.documentElement && document.documentElement.clientHeight)
    {
      windowHeight = document.documentElement.clientHeight;
    }
    else
    {
      if (document.body && document.body.clientHeight)
      {
        windowHeight=document.body.clientHeight;
      }
    }
  }
  return windowHeight;
}

function toggleBlindUpDown(boxID)
{
  var element = document.getElementById(boxID);
  if (element)
  {
    if (element.isShowing == true)
    {
      Effect.BlindUp(element);
      element.isShowing = false;
    }
    else
    {
      Effect.BlindDown(element);
      element.isShowing = true;
    }
  }
}

/* Tour Search JavaScript - Passes search terms and toggles search fields up and down. */
function SearchTours()
{
    // Get the search date vars
    var date = null;
    if (document.getElementById("toursearchdate") &&
        document.getElementById("toursearchdate").value)
    {
      date = document.getElementById("toursearchdate").value;
    }
    // Get the departure city vars
    var departid = null;
    var departname = null;
    if (document.getElementById("toursearchdepart") && document.getElementById("toursearchdepart").selectedIndex)
    {
      departid = document.getElementById("toursearchdepart").options[document.getElementById("toursearchdepart").selectedIndex].value;
      departname = document.getElementById("toursearchdepart").options[document.getElementById("toursearchdepart").selectedIndex].text;
    }
    // Get the keyword vars
    var keyword = document.getElementById("toursearchkeyword").value;
    // Make sure at least one search param was searched on
    if((date != null && date != "") ||
       (departid != null && departid != "0") ||
       (keyword != null && keyword != ""))
    {
      var searchURL = window.searchURL;
      // Add the date var to the search URL, if it's not nothing
      if (date != null)
      {
        searchURL += "&date=" + escape(date);
      }
      // Add the departure city var to the search URL, it's if not nothing
      if (departid != null)
      {
        searchURL += "&depart=" + departid;
      }
      // Add the keyword var to the search URL, if it's not nothing
      if (keyword != null && keyword != "")
      {
        searchURL += "&keyword=" + escape(keyword);
      }
      // Set the browser's URL to the new search URL
      window.location.href = searchURL;
    }
    return false;
}
function SearchAirportTransfers()
{
    // Get the departure city vars
    var departid = null;
    var departname = null;
    if (document.getElementById("airportsearchdepart") && document.getElementById("airportsearchdepart").selectedIndex)
    {
      departid = document.getElementById("airportsearchdepart").options[document.getElementById("airportsearchdepart").selectedIndex].value;
      departname = document.getElementById("airportsearchdepart").options[document.getElementById("airportsearchdepart").selectedIndex].text;
    }
    // Get the going to city vars
    var goingToid = null;
    var goingToname = null;
    if (document.getElementById("airportsearchgoingto") && document.getElementById("airportsearchgoingto").selectedIndex)
    {
      goingToid = document.getElementById("airportsearchgoingto").options[document.getElementById("airportsearchgoingto").selectedIndex].value;
      goingToname = document.getElementById("airportsearchgoingto").options[document.getElementById("airportsearchgoingto").selectedIndex].text;
    }
    // Make sure both search params were searched on
    if((departid != null && departid != "0") &&
       (goingToid != null && goingToid != "0"))
    {
      var searchURL = window.airportTransferURL;
      searchURL += "&d=" + departid;
      searchURL += "&a=" + goingToid;
      // Set the browser's URL to the new search URL
      window.location.href = searchURL;
    }
    return false;
}

function toggleSearchTab()
{
  if(document.getElementById('tourSearchFields').style.display == 'none')
    animatedcollapse.show('tourSearchFields');
  else
    animatedcollapse.hide('tourSearchFields');
}

function setRollover(imgIndex)
{
    // Hide all existing Navs.
    for (var i = 0; i < secNavIDs.length; i++)
    {
        if (document.getElementById(secNavIDs[i][0]) && secNavIDs[i][2])
            document.getElementById(secNavIDs[i][0]).firstChild.src = secNavIDs[i][2];
    }
    
    document.getElementById(secNavIDs[imgIndex][0]).firstChild.src = secNavIDs[imgIndex][3];
    showSecondaryNav(imgIndex);
}

function showSecondaryNav(menuID)
{
  // first, hide all sec navs.
  hideAllSecondNav();
  
  // Get the currently selected nav
  var secNavHolder = secNavIDs[menuID][1];
  // Show the associated secondary nav holder
  if (document.getElementById(secNavHolder))
  {
    document.getElementById(secNavHolder).style.display = 'block';
  }
}
function hideAllSecondNav()
{
  for (var i = 0; i < secNavIDs.length; i++)
  {
    if (document.getElementById(secNavIDs[i][1]))
      document.getElementById(secNavIDs[i][1]).style.display = 'none';
  }
}
function initiateMenuBar() {
   if (document.getElementById) {
      var mapIds = initiateMenuBar.arguments;    // pass string IDs of containing map elements
      var i, j, area, areas;
      for (i = 0; i < mapIds.length; i++) {
        if (document.getElementById(mapIds[i]))
        {
          areas = document.getElementById(mapIds[i]).getElementsByTagName("area");

          for (j = 0; j < areas.length; j++) {  // loop thru area elements
             area = areas[j];
             // Disabled for now // area.onmouseout = imgSwap;   // set event handlers
             area.onmouseover = imgSwap;  // set event handlers
          }
        }
      }
   }
}
// image swapping event handling
function imgSwap(evt) {
   evt = (evt) ? evt : event;                   // equalize event models
   var elem = (evt.target) ? evt.target : evt.srcElement;
   var imgClass = elem.parentNode.name;         // get map element name
   var coords = elem.coords.split(",");         // convert coords to clip
   var clipVal = "rect(" + coords[1] + "px " +
                           coords[2] + "px " +
                           coords[3] + "px " +
                           coords[0] + "px)";
   var imgStyle;
   
   switch (evt.type) {
      // Disabled for now
      //case "mouseout" :
      //   document.getElementById(imgClass + "_over").style.visibility = "hidden";
      //   break;
      
      case "mouseover" :
         // Hide the rollover state
         //document.getElementById(imgClass + "_over").style.visibility = "hidden";
         
         // Hide all secondary nav holders
         hideAllSecondNav();
         
         // Show the associated secondary nav holder
         showSecondaryNav(elem.id);
         
         imgStyle = document.getElementById(imgClass + "_over").style;
         imgStyle.clip = clipVal;
         imgStyle.visibility = "visible";
         break
   }
   evt.cancelBubble = true;
   return false;
}
function setSelectedMenuItem(menuBar, selectedId)
{
  var area = document.getElementById(selectedId);
  if (area)
  {
    var coords = area.coords.split(",");         // convert coords to clip
    var clipVal = "rect(" + coords[1] + "px " +
                            coords[2] + "px " +
                            coords[3] + "px " +
                            coords[0] + "px)";
    if (document.getElementById(menuBar))
    {
      var imgStyle = document.getElementById(menuBar).style;
      imgStyle.clip = clipVal;
      document.getElementById(menuBar).style.visibility = 'visible';
    }
    
    // Show the secondary nav Holder
    showSecondaryNav(selectedId);
  }
}
/* End Menu Bar */

/* Animate Collapse */
var animatedcollapse={
divholders: {}, //structure: {div.id, div.attrs, div.$divref}
divgroups: {}, //structure: {groupname.count, groupname.lastactivedivid}
lastactiveingroup: {}, //structure: {lastactivediv.id}
show:function(divids){ //public method
if (typeof divids=="object"){
for (var i=0; i<divids.length; i++)
this.showhide(divids[i], "show")
}
else
this.showhide(divids, "show")
},
hide:function(divids){ //public method
if (typeof divids=="object"){
for (var i=0; i<divids.length; i++)
this.showhide(divids[i], "hide")
}
else
this.showhide(divids, "hide")
},
toggle:function(divid){ //public method
this.showhide(divid, "toggle")
},
addDiv:function(divid, attrstring){ //public function
this.divholders[divid]=({id: divid, $divref: null, attrs: attrstring})
this.divholders[divid].getAttr=function(name){ //assign getAttr() function to each divholder object
var attr=new RegExp(name+"=([^,]+)", "i") //get name/value config pair (ie: width=400px,)
return (attr.test(this.attrs) && parseInt(RegExp.$1)!=0)? RegExp.$1 : null //return value portion (string), or 0 (false) if none found
}
},
showhide:function(divid, action){
var $divref=this.divholders[divid].$divref //reference collapsible DIV
if (this.divholders[divid] && $divref.length==1){ //if DIV exists
var targetgroup=this.divgroups[$divref.attr('groupname')] //find out which group DIV belongs to (if any)
if ($divref.attr('groupname') && targetgroup.count>1 && (action=="show" || action=="toggle" && $divref.css('display')=='none')){ //If current DIV belongs to a group
if (targetgroup.lastactivedivid && targetgroup.lastactivedivid!=divid) //if last active DIV is set
this.slideengine(targetgroup.lastactivedivid, 'hide') //hide last active DIV within group first
this.slideengine(divid, 'show')
targetgroup.lastactivedivid=divid //remember last active DIV
}
else{
this.slideengine(divid, action)
}
}
},
slideengine:function(divid, action){
var $divref=this.divholders[divid].$divref
if (this.divholders[divid] && $divref.length==1){ //if this DIV exists
var animateSetting={height: action}
if ($divref.attr('fade'))
animateSetting.opacity=action
$divref.animate(animateSetting, $divref.attr('speed')? parseInt($divref.attr('speed')) : 500)
return false
}
},
generatemap:function(){
var map={}
for (var i=0; i<arguments.length; i++){
if (arguments[i][1]!=null){
map[arguments[i][0]]=arguments[i][1]
}
}
return map
},
init:function(){
var ac=this
jQuery(document).ready(function($){
var persistopenids=ac.getCookie('acopendivids') //Get list of div ids that should be expanded due to persistence ('div1,div2,etc')
var groupswithpersist=ac.getCookie('acgroupswithpersist') //Get list of group names that have 1 or more divs with "persist" attribute defined
if (persistopenids!=null) //if cookie isn't null (is null if first time page loads, and cookie hasnt been set yet)
persistopenids=(persistopenids=='nada')? [] : persistopenids.split(',') //if no divs are persisted, set to empty array, else, array of div ids
groupswithpersist=(groupswithpersist==null || groupswithpersist=='nada')? [] : groupswithpersist.split(',') //Get list of groups with divs that are persisted
jQuery.each(ac.divholders, function(){ //loop through each collapsible DIV object
this.$divref=$('#'+this.id)
if ((this.getAttr('persist') || jQuery.inArray(this.getAttr('group'), groupswithpersist)!=-1) && persistopenids!=null){
var cssdisplay=(jQuery.inArray(this.id, persistopenids)!=-1)? 'block' : 'none'
}
else{
var cssdisplay=this.getAttr('hide')? 'none' : null
}
this.$divref.css(ac.generatemap(['height', this.getAttr('height')], ['display', cssdisplay]))
this.$divref.attr(ac.generatemap(['groupname', this.getAttr('group')], ['fade', this.getAttr('fade')], ['speed', this.getAttr('speed')]))
if (this.getAttr('group')){ //if this DIV has the "group" attr defined
var targetgroup=ac.divgroups[this.getAttr('group')] || (ac.divgroups[this.getAttr('group')]={}) //Get settings for this group, or if it no settings exist yet, create blank object to store them in
targetgroup.count=(targetgroup.count||0)+1 //count # of DIVs within this group
if (!targetgroup.lastactivedivid && this.$divref.css('display')!='none' || cssdisplay=="block") //if this DIV was open by default or should be open due to persistence								
targetgroup.lastactivedivid=this.id //remember this DIV as the last "active" DIV (this DIV will be expanded)
this.$divref.css({display:'none'}) //hide any DIV that's part of said group for now
}
}) //end divholders.each
jQuery.each(ac.divgroups, function(){ //loop through each group
if (this.lastactivedivid)
ac.divholders[this.lastactivedivid].$divref.show() //and show last "active" DIV within each group (one that should be expanded)
})
var $allcontrols=$('*[rel]').filter('[@rel^="collapse-"], [@rel^="expand-"], [@rel^="toggle-"]') //get all elements on page with rel="collapse-", "expand-" and "toggle-"
var controlidentifiers=/(collapse-)|(expand-)|(toggle-)/
$allcontrols.each(function(){
$(this).click(function(){
var relattr=this.getAttribute('rel')
var divid=relattr.replace(controlidentifiers, '')
var doaction=(relattr.indexOf("collapse-")!=-1)? "hide" : (relattr.indexOf("expand-")!=-1)? "show" : "toggle"
return ac.showhide(divid, doaction)
}) //end control.click
})// end control.each
$(window).bind('unload', function(){
ac.uninit()
})
}) //end doc.ready()
},
uninit:function(){
var opendivids='', groupswithpersist=''
jQuery.each(this.divholders, function(){
if (this.$divref.css('display')!='none'){
opendivids+=this.id+',' //store ids of DIVs that are expanded when page unloads: 'div1,div2,etc'
}
if (this.getAttr('group') && this.getAttr('persist'))
groupswithpersist+=this.getAttr('group')+',' //store groups with which at least one DIV has persistance enabled: 'group1,group2,etc'
})
opendivids=(opendivids=='')? 'nada' : opendivids.replace(/,$/, '')
groupswithpersist=(groupswithpersist=='')? 'nada' : groupswithpersist.replace(/,$/, '')
this.setCookie('acopendivids', opendivids)
this.setCookie('acgroupswithpersist', groupswithpersist)
},
getCookie:function(Name){ 
var re=new RegExp(Name+"=[^;]*", "i"); //construct RE to search for target name/value pair
if (document.cookie.match(re)) //if cookie found
return document.cookie.match(re)[0].split("=")[1] //return its value
return null
},
setCookie:function(name, value, days){
if (typeof days!="undefined"){ //if set persistent cookie
var expireDate = new Date()
expireDate.setDate(expireDate.getDate()+days)
document.cookie = name+"="+value+"; path=/; expires="+expireDate.toGMTString()
}
else //else if this is a session only cookie
document.cookie = name+"="+value+"; path=/"
}
}
/* End Animate Collapse */

/* Calendar Pop-up */
format='ISO';  var separator='-';
function getObj(objID)
{
if (document.getElementById) {return document.getElementById(objID);}
else if (document.all) {return document.all[objID];}
else if (document.layers) {return document.layers[objID];}
}
function checkClick(e) {
e?evt=e:evt=event;
CSE=evt.target?evt.target:evt.srcElement;
if (getObj('fc'))
if (!isChild(CSE,getObj('fc')))
getObj('fc').style.display='none';
}
function isChild(s,d) {
while(s) {
if (s==d) 
return true;
s=s.parentNode;
}
return false;
}
function Left(obj)
{
var curleft = 0;
if (obj.offsetParent)
{
while (obj.offsetParent)
{
curleft += obj.offsetLeft
obj = obj.offsetParent;
}
}
else if (obj.x)
curleft += obj.x;
return curleft;
}
function Top(obj)
{
var curtop = 0;
if (obj.offsetParent)
{
while (obj.offsetParent)
{
curtop += obj.offsetTop
obj = obj.offsetParent;
}
}
else if (obj.y)
curtop += obj.y;
return curtop;
}
document.write('<table id="fc" style="position:absolute;border-collapse:collapse;background:#FFFFFF;border:1px solid #ABABAB;display:none;z-index: 2001;" cellpadding=2>');
document.write('<tr><td style="cursor:pointer" onclick="csubm()"><img src="/img/cal/arrowleftmonth.gif"></td><td colspan=5 id="mns" align="center" style="font:bold 13px Arial"></td><td align="right" style="cursor:pointer" onclick="caddm()"><img src="/img/cal/arrowrightmonth.gif"></td></tr>');
document.write('<tr><td align=center style="background:#ABABAB;font:12px Arial">S</td><td align=center style="background:#ABABAB;font:12px Arial">M</td><td align=center style="background:#ABABAB;font:12px Arial">T</td><td align=center style="background:#ABABAB;font:12px Arial">W</td><td align=center style="background:#ABABAB;font:12px Arial">T</td><td align=center style="background:#ABABAB;font:12px Arial">F</td><td align=center style="background:#ABABAB;font:12px Arial">S</td></tr>');
for(var kk=1;kk<=6;kk++) {
document.write('<tr>');
for(var tt=1;tt<=7;tt++) {
num=7 * (kk-1) - (-tt);
document.write('<td id="v' + num + '" style="width:18px;height:18px">&nbsp;</td>');
}
document.write('</tr>');
}
document.write('</table>');
document.all?document.attachEvent('onclick',checkClick):document.addEventListener('click',checkClick,false);
// Calendar script
var now = new Date;
var sccm=now.getMonth();
var sccy=now.getFullYear();
var ccm=now.getMonth();
var ccy=now.getFullYear();
var ccd;                // SCOOB: new code
var updobj;
function lcs(ielem) {
updobj=ielem;
getObj('fc').style.left=Left(ielem);
getObj('fc').style.top=Top(ielem)+ielem.offsetHeight;
getObj('fc').style.display='';
// First check date is valid
curdt=ielem.value;
//	curdtarr=curdt.split('/');        // SCOOB old code:
curdtarr=curdt.split(separator);  // SCOOB: new code
isdt=true;
for(var k=0;k<curdtarr.length;k++) {
if (isNaN(curdtarr[k]))
isdt=false;
}
if (isdt&(curdtarr.length==3)) {
// SCOOB: New code if/else if/else
if (format=='USA') {      // USA foramt:  MM/DD/YYYY
ccm=curdtarr[0]-1;
ccd=curdtarr[1];
ccy=curdtarr[2];
}
else if (format=='ISO') { // ISO format:  YYYY-MM-DD
ccy=curdtarr[0];
ccm=curdtarr[1]-1;
ccd=curdtarr[2];
}
else {                    // DEFAULT behavior:  i.e. European format DD/MM/YYYY
ccd=curdtarr[0];
ccm=curdtarr[1]-1;
ccy=curdtarr[2];
}
prepcalendar(ccd,ccm,ccy);
}
}
function evtTgt(e)
{
var el;
if(e.target)el=e.target;
else if(e.srcElement)el=e.srcElement;
if(el.nodeType==3)el=el.parentNode; // defeat Safari bug
return el;
}
function EvtObj(e){if(!e)e=window.event;return e;}
function cs_over(e) {
evtTgt(EvtObj(e)).style.background='#FFCC66';
}
function cs_out(e) {
evtTgt(EvtObj(e)).style.background='#C4D3EA';
}
function cs_click(e) {
updobj.value=calvalarr[evtTgt(EvtObj(e)).id.substring(1,evtTgt(EvtObj(e)).id.length)];
getObj('fc').style.display='none';

}
var mn=new Array('JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC');
var mnn=new Array('31','28','31','30','31','30','31','31','30','31','30','31');
var mnl=new Array('31','29','31','30','31','30','31','31','30','31','30','31');
var calvalarr=new Array(42);
function f_cps(obj) {
obj.style.background='#C4D3EA';
obj.style.font='10px Arial';
obj.style.color='#333333';
obj.style.textAlign='center';
obj.style.textDecoration='none';
obj.style.border='1px solid #6487AE';
obj.style.cursor='pointer';
}
function f_cpps(obj) {
obj.style.background='#C4D3EA';
obj.style.font='10px Arial';
obj.style.color='#ABABAB';
obj.style.textAlign='center';
obj.style.textDecoration='line-through';
obj.style.border='1px solid #6487AE';
obj.style.cursor='default';
}
function f_hds(obj) {
obj.style.background='#FFF799';
obj.style.font='bold 10px Arial';
obj.style.color='#333333';
obj.style.textAlign='center';
obj.style.border='1px solid #6487AE';
obj.style.cursor='pointer';
}
// day selected
function prepcalendar(hd,cm,cy) {
now=new Date();
sd=now.getDate();
td=new Date();
td.setDate(1);
td.setFullYear(cy);
td.setMonth(cm);
cd=td.getDay();
getObj('mns').innerHTML=mn[cm]+ ' ' + cy;
marr=((cy%4)==0)?mnl:mnn;
for(var d=1;d<=42;d++) {
f_cps(getObj('v'+parseInt(d)));
if ((d >= (cd -(-1))) && (d<=cd-(-marr[cm]))) {
dip=((d-cd < sd)&&(cm==sccm)&&(cy==sccy));
htd=((hd!='')&&(d-cd==hd));
if (dip)
f_cpps(getObj('v'+parseInt(d)));
else if (htd)
f_hds(getObj('v'+parseInt(d)));
else
f_cps(getObj('v'+parseInt(d)));

getObj('v'+parseInt(d)).onmouseover=(dip)?null:cs_over;
getObj('v'+parseInt(d)).onmouseout=(dip)?null:cs_out;
getObj('v'+parseInt(d)).onclick=(dip)?null:cs_click;

getObj('v'+parseInt(d)).innerHTML=d-cd;	



// SCOOB: New code if/else if/else
if (format=='USA') {      // USA foramt:  MM/DD/YYYY
calvalarr[d]=''+(cm-(-1))+separator+(d-cd)+separator+cy;
}
else if (format=='ISO') { // ISO format:  YYYY-MM-DD
calvalarr[d]=''+cy+separator+(cm-(-1))+separator+(d-cd);    // SCOOB: new code
}
else {                    // DEFAULT behavior:  i.e. European format DD/MM/YYYY
calvalarr[d]=''+(d-cd)+separator+(cm-(-1))+separator+cy;
}
}
else {
getObj('v'+d).innerHTML='&nbsp;';
getObj('v'+parseInt(d)).onmouseover=null;
getObj('v'+parseInt(d)).onmouseout=null;
getObj('v'+parseInt(d)).style.cursor='default';
}
}
}
prepcalendar('',ccm,ccy);
function caddm() {
marr=((ccy%4)==0)?mnl:mnn;

ccm+=1;
if (ccm>=12) {
ccm=0;
ccy++;
}
cdayf();
prepcalendar('',ccm,ccy);
}
function csubm() {
marr=((ccy%4)==0)?mnl:mnn;

ccm-=1;
if (ccm<0) {
ccm=11;
ccy--;
}
cdayf();
prepcalendar('',ccm,ccy);
}
function cdayf() {
if ((ccy>sccy)|((ccy==sccy)&&(ccm>=sccm)))
return;
else {
ccy=sccy;
ccm=sccm;
cfd=scfd;
}
}
/* End Calendar Pop-Up */

/*********** Generic Helper Function *************/
function showObj( obj ) {
objWin = window.open( '', 'objectWindow', '' );
if( !objWin.document.body )
objWin.document.write( '<html><head></head><body></body></html>' );

objWin.document.body.style.font = '11px Ariel, Helvetica, Sans-serif';
var strHTML = '<h2>' + obj + '</h2>';
strHTML += '<table cellspacing="0" border="1">';
var objRegExp = new RegExp( '<', 'g' );
var objRegExpLB = new RegExp( '\\n', 'g' );
for( o in obj ) {
strHTML += '<tr>';
strHTML += '<td valign="top">' + o + ': </td>';
strHTML += '<td valign="top" style="color: #660000;">';
try {
strObjTxt = new String( obj[ o ] );
strHTML += '<pre>' + strObjTxt.replace( objRegExp, '&lt;' ) + '</pre>';
} catch( er ) {
strHTML += '--ERROR [' + er + ']--';
}
strHTML += '</td>';
strHTML += '</tr>';
}
strHTML += '</table>';
strHTML += '<br />';
objWin.document.body.innerHTML += strHTML;
}