gPopUpMsg="";CALENDAR_RECORDS_HT=null;if(window.CALENDAR_RECORDS){CALENDAR_RECORDS_HT=new Array();for(var i=0;i<CALENDAR_RECORDS.length-3;i++)CALENDAR_RECORDS_HT[CALENDAR_RECORDS[i][2]]=CALENDAR_RECORDS[i];}
function clearField(field){if(field.value==field.defaultValue)field.value="";}
function checkField(field){if(field.value=="")field.value=field.defaultValue;}
function tellAFriend(propType,theURL){PopUp.openWin("tell_a_fiend.html",0,0,1,0,600,560,1,1,2);PopUp.linkToWin();gPopUpMsg="Check out this "+propType+" offered by Tropical Villa Vacations. Point your browser to "+theURL;}
function pageType(pattern1,pattern2){var thisPage=document.location.href;return(thisPage.indexOf(pattern1)!=-1||thisPage.indexOf(pattern2)!=-1);}
function getHeaderPhotos(){var yachtPg=(fileName=="yacht.html"||qStr&&qStr.indexOf("yacht-")>=0);var calPg=(fileName=="calendar.html"||fileName=="calendar.aspx"||fileName=="calendar-villa.aspx"||fileName=="calendar-villa.html");var photoGal=(qStr&&qStr.gV("data")&&qStr.gV("data").substring(0,3)=="pg-");var nRandom=(yachtPg)?7:getRandomNum(null);var photos='';var randomDisplay=(!qStr||qStr.indexOf("data=")==-1||yachtPg||photoGal);if(randomDisplay)return photos;else{var phot1=(window.Villa&&Villa.HeaderPhotoTitle1);var phot2=(window.Villa&&Villa.HeaderPhotoTitle1);if(!phot1&&!phot2)return photos;else{var IMG_WID='148';var IMG_HGT='110';var imgMsg1='';var imgMsg2='';if(local){imgMsg1='NAME:header1.jpg  Width:'+IMG_WID+'  Height:'+IMG_HGT;imgMsg2='NAME:header2.jpg  Width:'+IMG_WID+'  Height:'+IMG_HGT;}
var phot1Str='';var pH='';phot2Str='';var phot1Tit='';var phot2Tit='';var imgPath="images/"+dataFile.replace(/^data\/fs-|\.js$/g, "" ) + "/";
if(phot1){phot1Str='<TD><IMG SRC="' + imgPath + '/header1.jpg" BORDER=0 WIDTH='+IMG_WID+' HEIGHT='+IMG_HGT+'  HSPACE=0 VSPACE=5 ALT="' + imgMsg1 + '" onMouseover="self.status=alt; return true;" CLASS=imgBorder></TD>';phot1Tit='<TD ALIGN=center CLASS=fSize9>'+Villa.HeaderPhotoTitle1+'</TD>';}
if(phot1&&phot2)pH='<TD WIDTH=30>&nbsp;</TD>';if(phot2){phot2Str='<TD><IMG SRC="' + imgPath + '/header2.jpg" BORDER=0 WIDTH='+IMG_WID+' HEIGHT='+IMG_HGT+' HSPACE=0 VSPACE=5 ALT="' + imgMsg2 + '" onMouseover="self.status=alt; return true;" CLASS=imgBorder></TD>';phot2Tit='<TD ALIGN=center CLASS=fSize9>'+Villa.HeaderPhotoTitle2+'</TD>';}
var html='<TR>'+phot1Str+pH+phot2Str+pH+'</TR><TR>'+phot1Tit+pH+phot2Tit+pH+'</TR>';}
photos=''+'<TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0 WIDTH=428><!--NESTED-->'+'<TR>'+'<TD><!--NESTED-->'+'<TABLE ALIGN=center BORDER=0 CELLSPACING=0 CELLPADDING=0>'+html+'</TABLE>'+'</TD>'+'</TR>'+'</TABLE>';}
return photos;}
function getPageHeader(pageTitle){if(pageTitle||fileName=="listings.html"){var pageHeader="<table align='center' border='0' cellspacing='0' cellpadding='0'><tr><td style='padding:0px 0px 0px 0px;'><img src='images/TVVLogo03.png' border='0' width='473' height='219' hspace='0' vspace='0'></td></tr>";if(pageTitle)pageHeader+="<tr><td style='text-align:center; padding:0px 0px 15px 0px; font-size:15pt; font-variant:small-caps;'>"+pageTitle+"</td></tr>";pageHeader+="</table>"}
else{var pageHeader="<FORM NAME=pull_down_top><DIV ALIGN=center><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><!-- MASTER --><TR>";var logoReferrer=GetCookie("tvvReferrer");pageHeader+="<TD align='center' WIDTH=500 HEIGHT=235><IMG SRC='images/TVVLogo03.png' BORDER=0 WIDTH=473 HEIGHT=219 HSPACE=0 VSPACE=0 onClick='if(GetCookie(\"ReportErrors\") == null ) { if( confirm ( \"REFERRER: "+logoReferrer+"\\n\\nADMIN: Enable error reporting for troubleshooting purposes?\" ) ) { SetCookie(\"ReportErrors\", true, null, \"/\"); defaultStatus=\"ADMIN: Running in deep-check mode; full error reporting enabled\"; document.oncontextmenu = null; document.onmousedown = null; document.onmouseup = null; } } else { if( confirm ( \"ADMIN: Disable error reporting for troubleshooting purposes?\" ) ) { DeleteCookie(\"ReportErrors\", \"/\"); defaultStatus=\"ADMIN: Running in normal mode; full error reporting disabled\"; document.oncontextmenu = noContextMenu; document.onmousedown = noRightClick; document.onmouseup = noRightClick; } }' onMouseOver='if(GetCookie(\"ReportErrors\") == \"true\" ) self.status=\"ADMIN: Full Error Reporting Enabled\"; return true;' onMouseOut='self.status=\"\"; return true;'></TD></TR><TR><TD><TABLE BORDER=0 CELLSPACING=0 CELLPADDING=0><!-- NESTED --><TR><TD>&nbsp;</TD><TD WIDTH=40>&nbsp;</TD><TD>"+getHeaderPhotos()+"</TD></TR></TABLE><!-- NESTED --></TD></TR></TABLE><!-- MASTER --></DIV></FORM>";}
pageHeader+="<div style='position:absolute; top:12px; right:12px;'>"+getPullDown('top')+"</div>";return pageHeader;}
function getDataFile(type){var dataFile="null";if(qStr)dataFile="data/"+qStr.gV("data");return dataFile;}
function buildMenu(Link,theEvent){if(window.DM){var propInfo="";var propID=Link.id.replace(/^pLink/, "" );
for(var nProp=0;nProp<Villas.length;nProp++){var PropRecord=Villas[nProp];if(PropRecord[0]==propID){var loc=PropRecord[2];var island=List.getIsland(PropRecord[3],PropRecord[0]);var nBdrms=(PropRecord[4][0]==PropRecord[4][1])?PropRecord[4][0]:PropRecord[4][0]+"-"+PropRecord[4][1];var nBaths=(PropRecord[5][0]==PropRecord[5][1])?PropRecord[5][0]:PropRecord[5][0]+"-"+PropRecord[5][1];var pool=(PropRecord[6])?"Y":"N";var spa=(PropRecord[7])?"Y":"N";var ac=(PropRecord[8])?"Y":"N";var rates=(PropRecord[9][0]==PropRecord[9][1])?PropRecord[9][0]:PropRecord[9][0]+"-"+PropRecord[9][1];var maxOcc=(PropRecord[10][0]==PropRecord[10][1])?PropRecord[10][0]:PropRecord[10][0]+"-"+PropRecord[10][1];var propTypeAbbrv=PropRecord[11];var propType=List.getSetting(PropRecord[11],PropRecord[0]);var showCal=(staffUser&&CALENDAR_RECORDS_HT[propID][5]!=4||publicUser&&CALENDAR_RECORDS_HT[propID][5]==1);var showTst=(PropRecord[16]);propInfo=loc+", "+island+" &#149; "+nBdrms+"br/"+nBaths+"ba"+"<BR>Starting at "+rates+"/nt"+" &#149; "+propType+"<BR>Pool="+pool+" &#149; Spa="+spa+" &#149; AC="+ac+"<BR>"+"Max Occupancy: "+maxOcc;propInfo=propInfo.replaceLiteral("'","&#39;");break;}}
var linkQstr="data="+"fs-"+propTypeAbbrv+"-"+propID+".js";DM.Links.summary=new Array();var nItems=0;if(propInfo){DM.Links.summary[nItems]=[propInfo,"text","This info is read-only, please click a menu item above..."];nItems++;DM.Links.summary[nItems]=["","-",""];nItems++;}
if(publicUser){DM.Links.summary[nItems]=["Calculate Rent","javascript:void(0);","","launchCalculator( \""+propID+"\" );"];nItems++;DM.Links.summary[nItems]=["View Rates","javascript:void(0);","","showRates( \""+propID+"\" );"];nItems++;}
if(showCal){var page=(writeP)?"calendar-villa.aspx":"calendar-villa.html";DM.Links.summary[nItems]=["Reservation Calendar",page+"?"+linkQstr,"View our booking calendar & find open dates"];nItems++;}
if(showTst){DM.Links.summary[nItems]=["Testimonials","testmon.html?"+linkQstr,"Read what our satisfied clients said about this property..."];nItems++;}
DM.Links.summary[nItems]=["More Photos","thumbnails.html?"+linkQstr,"View photos as clickable thumbnails..."];nItems++;DM.Links.summary[nItems]=["Slide-Show","javascript:PopUp.openWin( \"ss.html?"+linkQstr+"\", 3 );","View photos via automated slide-show"];nItems++;DM.Links.summary[nItems]=["Rates & Details","fact-sheet.html?"+linkQstr,"Read our detailed Fact Sheet"];nItems++;if(writeP||readP){DM.Links.summary[nItems]=["","-",""];nItems++;DM.Links.summary[nItems]=["Edit Rental Rates","db/?lastPage="+fileName+"#edit_property",""];nItems++;DM.Links.summary[nItems]=["Rate Chart - Unmanaged","db/properties/index.html?lastPage="+fileName+"#non-managed",""];nItems++;DM.Links.summary[nItems]=["Rate Chart - Managed","db/properties/index.html?lastPage="+fileName+"#managed",""];nItems++;var pName=Link.innerHTML;pName=pName.replace(/wailea +beach +villas/i, "" );
pName=pName.replace(/ at .*/i, "" );
DM.Links.summary[nItems]=["View Rates","javascript:void(0);","","showRates( \""+propID+"\" );"];nItems++;DM.Links.summary[nItems]=["Calculate Rent","javascript:void(0);","","launchCalculator( \""+propID+"\" );"];nItems++;}
DM.Links.summary[nItems]=[Link.innerHTML,[10,6],[0,5],[0,14],[0,4],[0,0],[10,6]];DM.start(Link,theEvent,"summary","aboveRel");}
return true;}
function showRates(propId,dateIn,dateOut,eMail,guest,rent,rsf,rstFee,rstFeeTx,outCln,outClnGET,outClnTAT,secDep){if(qStr&&!propId){var dataFile=qStr.gV("data");if(dataFile)propId=dataFile.replace(/^data=fs-|\.js$/g, "" ).replace(/^.+-/, "" );}
var successfulDownload=true;var RequestXml=getAjaxRequest();RequestXml.open("GET","db/"+propId+".xml?cb="+Math.random(),false);RequestXml.send("");if(RequestXml.status!=200&&RequestXml.status!=304){successfulDownload=false;if(publicUser)alert("Error: Unable to download \u201Cdb/"+propId+".xml\u201D @ showRates\n\nPlease report this problem to the Webmaster.");else
alert("An error has occurred. Software is looking for but unable to find \u201Cdb/"+propId+".xml\u201D\n\nFix it by adding this property to the data-base at TropicalVillaVacations.com/db");}
var Today=getToday();var cacheBuster=Today.getFullYear()+"-"+(Today.getMonth()+1)+"-"+Today.getDate();var RequestJs=getAjaxRequest();RequestJs.open("GET","db/global_data.js?cb="+cacheBuster,false);RequestJs.send("");if(RequestJs.status!=200&&RequestJs.status!=304&&successfulDownload){successfulDownload=false;var reportTo=(publicUser)?"the Webmaster.":"David Regier.";alert("Error: Unable to download \u201Cdb/global_data.js\u201D @ showRates\n\nPlease report this problem to "+reportTo);}
if(successfulDownload){var GetOut=new Array();var TatOut=new Array();var RSFOut=new Array();var Today=getToday();var today=Today.getTime();eval(RequestJs.responseText);var getRate=GET_TVV[0][0];for(var i=0;i<GET_TVV.length-1;i++){GetOut.push([GET_TVV[i][0],GET_TVV[i][1][0]+"/"+GET_TVV[i][1][1]+"/"+GET_TVV[i][1][2]]);var GetDate=new Date(GET_TVV[i][1][2]+2000,GET_TVV[i][1][0]-1,GET_TVV[i][1][1]);if(Today>=GetDate)getRate=GET_TVV[i][0];}
for(var i=0;i<TAT_TVV.length-1;i++)TatOut.push([TAT_TVV[i][0],TAT_TVV[i][1][0]+"/"+TAT_TVV[i][1][1]+"/"+TAT_TVV[i][1][2]]);for(var i=0;i<RSF_TVV.length-1;i++)RSFOut.push([RSF_TVV[i][0],RSF_TVV[i][1][0]+"/"+RSF_TVV[i][1][1]+"/"+RSF_TVV[i][1][2]]);var XmlProperty=RequestXml.responseXML;var DataNode=XmlProperty.getElementsByTagName("Data")[0];var Name=gFC(DataNode);var pName=gNV(Name);var NameId=Name.getAttribute("id");var Other_Fees=DataNode.getElementsByTagName("Other_Fees")[0];var cleanOut="";var Outcleaning=gFC(Other_Fees);var outcleaning_Included=Outcleaning.getAttribute("Included");var outcleaning_Max=Outcleaning.getAttribute("Max");var cleaningIncluded=(outcleaning_Included=="Yes");if(cleaningIncluded){if(outcleaning_Max){var cleanMax=gFF(parseFloat(outcleaning_Max));cleanOut="Included up to "+cleanMax;}
else
cleanOut="Included";}
else{var cleaningFee=parseFloat(gNV(Outcleaning));var cleaningTax=gRF(cleaningFee*getRate/100);var cleaningFeeWithTax=gFF(cleaningFee+cleaningTax);cleanOut=gFF(cleaningFee);if(cleaningFee)cleanOut+=" + "+getRate+"% GET ("+gFF(cleaningTax)+") = "+cleaningFeeWithTax;}
var Security_Deposit=gNS(Outcleaning);var security_Deposit=parseFloat(gNV(Security_Deposit));var secDepOut=gFF(security_Deposit);var Resort_Fee=gNS(Security_Deposit);var resort_Fee=gNV(Resort_Fee);var resort_FeeOut = ( /%/.test(resort_Fee))?resort_Fee:gFF(parseFloat(resort_Fee));var Htm=new Array();Htm.push("<html>\n");Htm.push("<head>\n");Htm.push("\t<title>");Htm.push(pName);Htm.push("</title>\n");Htm.push("\t<link rel='stylesheet' href='code/calculator/calculator-public.css?cb=2011-09-08-0952' type='text\/css' media='all'>\n");Htm.push("\t<link rel='stylesheet' href='code/calculator/calculator-publicPF.css?cb=2011-09-08-0952' type='text\/css' media='print'>\n");Htm.push("\t<script type='text/javascript' src='code/villa0.js?cb=2011-09-08-0952'></script>\n");Htm.push("</head>\n\n");Htm.push("<body>\n\n");Htm.push("<div align='center' class='ViewRatesPropertyName'>");Htm.push(pName);Htm.push("</div>\n\n");Htm.push("<table align='center' border='0'>\n");Htm.push("<tbody>\n\n");Htm.push("<tr>\n");Htm.push("\t<th class='ViewRatesRt'>Period</th>\n");Htm.push("\t<th class='ViewRatesRt'>From</th>\n");Htm.push("\t<th class='ViewRatesBlank'></th>\n");Htm.push("\t<th class='ViewRatesLt'>To</th>\n");Htm.push("\t<th class='ViewRatesRt'>Per Nt</th>\n");Htm.push("\t<th class='ViewRatesRt' id='Per Wk'></th>\n");Htm.push("\t<th class='ViewRatesRt' id='Per Mo'></th>\n");Htm.push("\t<th class='ViewRatesRt'>Min</th>\n");Htm.push("\t<th class='ViewRatesLt' id='Notes'></th>\n");Htm.push("</tr>\n\n");var counter=0;var perWkCol=false,perMoCol=false,notesCol=false;var Periods=DataNode.getElementsByTagName("Period");for(var i=0;i<Periods.length;i++){var Period=Periods[i];var Ends=Period.getAttribute("Ends");var EndsSegments=Ends.split("/");for(var j=0;j<EndsSegments.length;j++)EndsSegments[j]=parseInt(EndsSegments[j]);var EndDate=new Date(EndsSegments[2]+2000,EndsSegments[0]-1,EndsSegments[1]);var endDate=EndDate.getTime();var Title=gFC(Period),tit=gNV(Title);tit=tit.replace(/christmas/i, "Xmas" ).replace(/new year?s/i, "NY" );
var Beg=gNS(Title),beg=gNV(Beg);var End=gNS(Beg),end=gNV(End);var Per_Nt=gNS(End),per_Nt=gNV(Per_Nt);var Per_Wk=gNS(Per_Nt),per_Wk=gNV(Per_Wk);var Per_Mo=gNS(Per_Wk),per_Mo=gNV(Per_Mo);var Min_Stay=gNS(Per_Mo),min_Stay=gNV(Min_Stay);var Notes=gNS(Min_Stay),notes=gNV(Notes);if(endDate>=today){counter++;var rowCls=(counter%2)?"ViewRates ViewRatesBkg":"ViewRates";Htm.push("<tr class='");Htm.push(rowCls);Htm.push("'>\n");Htm.push("\t<td class='ViewRatesRt noWrap'>");Htm.push((tit)?tit:"&#151;");Htm.push("</td>\n");Htm.push("\t<td class='ViewRatesRt noWrap'>");Htm.push(beg);Htm.push("</td>\n");Htm.push("\t<td class='ViewRatesDash noWrap'>");Htm.push("-");Htm.push("</td>\n");Htm.push("\t<td class='ViewRatesLt noWrap'>");Htm.push(end);Htm.push("</td>\n");Htm.push("\t<td class='ViewRatesRt noWrap'>");Htm.push((per_Nt)?gFF(parseFloat(per_Nt)):"&#151;");Htm.push("</td>\n");if(per_Wk){Htm.push("\t<td class='ViewRatesRt noWrap'>");Htm.push(gFF(parseFloat(per_Wk)));Htm.push("</td>\n");perWkCol=true;}
else
Htm.push("\t<td></td>\n");if(per_Mo){Htm.push("\t<td class='ViewRatesRt noWrap'>");Htm.push(gFF(parseFloat(per_Mo)));Htm.push("</td>\n");perMoCol=true;}
else
Htm.push("\t<td></td>\n");Htm.push("\t<td class='ViewRatesRt noWrap'>");Htm.push(min_Stay);Htm.push("</td>\n");if(notes){Htm.push("\t<td class='ViewRatesLt' style='font-size:10pt;'>");Htm.push(notes);Htm.push("</td>\n");notesCol=true;}
else
Htm.push("\t<td></td>\n");Htm.push("</tr>\n\n");}}
if(counter==0){Htm.push("<tr class='NoRatesFound'>\n");Htm.push("\t<td colspan='9'>No Rates Found</td>\n");Htm.push("</tr>\n\n");}
Htm.push("<tr>\n");Htm.push("\t<td class='OtherGlobalFees' colspan='9' style='padding-top:15px;'>\n");Htm.push("\t\tRates are plus General Excise (GE) & Transient Accommodations (TA) Tax");Htm.push("\n\t</td>\n");Htm.push("</tr>\n\n");Htm.push("<tr>\n");Htm.push("\t<td class='OtherGlobalFees' colspan='9'>\n");Htm.push("\t\tCleaning ");Htm.push(cleanOut);Htm.push("<span class='bullet'>&#149;</span>");Htm.push("Deposit ");Htm.push(secDepOut);Htm.push("<span class='bullet'>&#149;</span>");Htm.push("Resort Fee ");Htm.push(resort_FeeOut);Htm.push("\n\t</td>\n");Htm.push("</tr>\n\n");Htm.push("<tr>\n");Htm.push("\t<td class='OtherGlobalFees' colspan='9'>\n");Htm.push("\t\tGE Tax ");for(var k=0;k<GetOut.length;k++){Htm.push(GetOut[k][0]);Htm.push("%");if(GetOut.length>1){if(k>0){Htm.push(" on ");Htm.push(GetOut[k][1]);}
Htm.push(", ");}}
Htm[Htm.length-1]=Htm[Htm.length-1].replace(/, /, "" );
Htm.push(" <span class='bullet'>&#149;</span> TA Tax ");for(var k=0;k<TatOut.length;k++){Htm.push(TatOut[k][0]);Htm.push("%");if(TatOut.length>1){if(k>0){Htm.push(" on ");Htm.push(TatOut[k][1]);}
Htm.push(", ");}}
Htm[Htm.length-1]=Htm[Htm.length-1].replace(/, /, "" );
Htm.push(" <span class='bullet'>&#149;</span> Res Service Fee ");for(var k=0;k<RSFOut.length;k++){Htm.push(gFF(RSFOut[k][0]));if(RSFOut.length>1){if(k>0){Htm.push(" on ");Htm.push(RSFOut[k][1]);}
Htm.push(", ");}}
Htm[Htm.length-1]=Htm[Htm.length-1].replace(/, /, "" );
Htm.push("\n\t</td>\n");Htm.push("</tr>\n\n");var Rate_Notes_Additional=DataNode.getElementsByTagName("Rate_Notes_Additional")[0];var rate_Notes_Additional=gNV(Rate_Notes_Additional);rate_Notes_Additional=rate_Notes_Additional.replace(/\r/g, "" ).replace(/\n/g, "<br/>" );
rate_Notes_Additional=rate_Notes_Additional.replace(/{/g, "" ).replace(/}/g, "" );
if(!rate_Notes_Additional)rate_Notes_Additional="<div style='text-align:center; font-weight:bold;'>No additional notes found</div>";Htm.push("<tr>\n");Htm.push("\t<td colspan='9'>\n\t\t");Htm.push("<div class='RateNotesAdditional'>");Htm.push(rate_Notes_Additional);Htm.push("</div>");Htm.push("\n\t</td>\n");Htm.push("</tr>\n\n");Htm.push("</tbody>\n");Htm.push("</table>\n\n");if(!dateIn)dateIn="";if(!dateOut)dateOut="";if(!eMail)eMail="";if(!guest)guest="";if(!rent)rent="";if(!rsf)rsf="";if(!rstFee)rstFee="";if(!rstFeeTx)rstFeeTx="";if(!outCln)outCln="";if(!outClnGET)outClnGET="";if(!outClnTAT)outClnTAT="";if(!secDep)secDep="";var calcArgs="\""+propId+"\",\""+dateIn+"\",\""+dateOut+"\",\""+eMail+"\",\""+guest+"\",\""+rent+"\",\""+rsf+"\",\""+rstFee+"\",\""+rstFeeTx+"\",\""+outCln+"\",\""+outClnGET+"\",\""+outClnTAT+"\",\""+secDep+"\"";Htm.push("<div align='center' class='ButtonsViewRates'>\n");Htm.push("\t<input type='button' value='Print' onClick='window.print();' title='Print these rates' />\n");Htm.push("\t<input type='button' id='CalculateRentButton' value='Calculate Rent' onClick='window.opener.launchCalculator( ");Htm.push(calcArgs);Htm.push(" ); self.close(); if( window.opener.calcWindow ) window.opener.calcWindow.focus();' title='Launch the Rent-Calculator' style='width:120px;' />\n");Htm.push("\t<input type='button' value='Close' onClick='window.close();' title='Close this pop-up' />\n");Htm.push("</div>\n\n");Htm.push("</body>\n");Htm.push("</html>");htm=Htm.join("");var wWid=540,wHgt=460;if(publicUser)wHgt+=40;if(perWkCol){htm=htm.replace(/<th class='ViewRatesRt' id='Per Wk'><\/th>/, "<th class='ViewRatesRt'>Per Wk</th>" );
wWid+=50;}
if(perMoCol){htm=htm.replace(/<th class='ViewRatesRt' id='Per Mo'><\/th>/, "<th class='ViewRatesRt'>Per Mo</th>" );
wWid+=50;}
if(notesCol){htm=htm.replace(/<th class='ViewRatesLt' id='Notes'><\/th>/, "<th class='ViewRatesLt'>Notes</th>" );
wWid+=300;wHgt+=40;}
var browserMenu=(local)?1:0;Popup.openWin("about:blank",-1,wWid,wHgt,2,0,0,0,browserMenu,1,1);Popup.Win.document.write(htm);Popup.Win.document.close();}}
VillasHT=new Array();function Listings(){this.requestSpc=(qStr&&qStr.gV("show")=="sp");this.requestPrv=(qStr&&qStr.gV("show")=="pv");this.requestLmn=(qStr&&qStr.gV("show")=="lm");this.requestPub=(this.requestSpc||this.requestPrv||this.requestLmn)?false:true;this.showListings=(this.requestPub||this.requestSpc||this.requestPrv);try{Villas.length=Villas.length-1;}
catch(Err){var eMsg="ERROR: Data in listings.js is malformed (bad syntax). Villas array cannot be initialized.\n\n";for(member in Err)eMsg+=member+": "+Err[member]+"\n";if(!gErrReported)reportError("Data Listings Syntax Error",eMsg);gErrReported=true;}
outer:for(var i=0;i<Villas.length;i++){Villas[i][1]=Villas[i][1].cleanIt();Villas[i][2]=Villas[i][2].cleanIt();var id=Villas[i][0];var nDups=0;for(var k=0;k<Villas.length;k++)if(id==Villas[k][0])nDups++;if(nDups>1){reportError("Data Listings Error","ERROR: listings.js contains "+nDups+" duplicate entries for a Villas referenced by \""+id+"\"");break outer;}
VillasHT[id]=Villas[i];}
this.getSetting=getSetting;this.getIsland=getIsland;this.getPrivatePopup=getPrivatePopup;this.writeListingInstructions=writeListingInstructions;this.sortAscStr=sortAscStr;this.sortDesStr=sortDesStr;this.sortAscNum=sortAscNum;this.sortDesNum=sortDesNum;this.sortMe=sortMe;this.init=init;this.getListings=getListings;this.restoreSort=restoreSort;this.filterData=filterData;this.showPics=showPics;this.collapse=collapse;this.preloadTN=preloadTN;this.preloadMsg=preloadMsg;this.showPrivate=showPrivate;this.DivImgPreloader=null;this.restoreSortTimer=0;this.initSortPageTimer=0;this.sortIndex=-1;this.sortCol=-1;this.lastRowNum=-1;this.nVillaCaching=0;this.nImgCached=0;this.preloadVerbose=0;this.preloadDelay=(this.preloadVerbose)?1000:100;this.sortNmDes=1;this.sortLcDes=1;this.sortIsDes=1;this.sortBrDes=1;this.sortBaDes=1;this.sortPlDes=1;this.sortSpDes=1;this.sortAcDes=1;this.sortRtDes=1;this.sortOcDes=1;this.sortStDes=1;this.sortScDes=1;this.sortOrDes=1;this.lastSortCol=null;this.sortState=GetCookie("sortState");if(this.sortState&&this.sortState.substring(0,2)=="12"&&(this.requestPub||this.requestPrv)){DeleteCookie("sortState");this.sortState=null;}
if(this.sortState){this.lastSortCol=parseInt(this.sortState.split("_")[0]);var lastSortOrder=parseInt(this.sortState.split("_")[1]);switch(this.lastSortCol){case 1:this.sortNmDes=lastSortOrder;break;case 2:this.sortLcDes=lastSortOrder;break;case 3:this.sortIsDes=lastSortOrder;break;case 4:this.sortBrDes=lastSortOrder;break;case 5:this.sortBaDes=lastSortOrder;break;case 6:this.sortPlDes=lastSortOrder;break;case 7:this.sortSpDes=lastSortOrder;break;case 8:this.sortAcDes=lastSortOrder;break;case 9:this.sortRtDes=lastSortOrder;break;case 10:this.sortOcDes=lastSortOrder;break;case 11:this.sortStDes=lastSortOrder;break;case 12:this.sortScDes=lastSortOrder;break;default:if(!window.gErrReported)reportError("Internal Switch/Case Error","Switch/Case Error at Listings() switch( this.lastSortCol ); Bad Switch: "+this.lastSortCol);window.gErrReported=true;}}
ListingInstructions=ListingInstructions.cleanIt();SpecialCommentary=SpecialCommentary.cleanIt();if(this.requestLmn)LastMinuteCommentary=LastMinuteCommentary.cleanIt();function getSetting(abbrev,id){if(abbrev.indexOf(" ")==-1&&typeof eval("window.Setting."+abbrev)=="string")return eval("window.Setting."+abbrev);else{if(!window.gErrReported)reportError("Data Listings Setting Error","Cannot find a match for the setting \""+abbrev+"\" for property ID \""+id+"\" in listings.js.");window.gErrReported=true;return "<span class='fColorYellow bold'>Error</span>";}}
function getIsland(abbrev,id){if(abbrev.indexOf(" ")==-1&&typeof eval("window.Island."+abbrev)=="string")return eval("window.Island."+abbrev);else{if(!window.gErrReported)reportError("Data Listings Island Error","Cannot find a match for the Island \""+abbrev+"\" for property ID \""+id+"\" in listings.js.");window.gErrReported=true;return "<span class='fColorYellow bold'>Error</span>";}}
function writeListingInstructions(){var pageTitle=ListingsTitle.Public;if(this.requestSpc)pageTitle=ListingsTitle.Specials;else if(this.requestPrv)pageTitle=ListingsTitle.Private;else if(this.requestLmn)pageTitle=ListingsTitle.LastMinute;var htm="";if(getWinWid()>=1152){htm+="<style>a.rowLink { font-size:11pt; }a.rowLink:link { font-size:11pt; }a.rowLink:visited { font-size:11pt; }a.rowLink:hover { font-size:11pt; }a.col { font-size:10pt; }a.col:link { font-size:10pt; }a.col:visited { font-size:10pt; }a.col:hover { font-size:10pt; }td.headInner { font-size:11pt; }td.listRow { font-size:11pt; }td.listRowSort { font-size:11pt; }td.listRowSortOn { font-size:11pt; }td.listRowOn { font-size:11pt; }td.listRowOff { font-size:11pt; }</style>";}
if(pageTitle)htm+="<div class='listTitle' id='listTitleDiv'>"+pageTitle+"</div>";htm+="<span id='instructions'>";if(window.ListingInstructions&&!this.requestSpc&&!this.requestLmn)htm+="<div align='center' class='listInstructions'>"+ListingInstructions+"</div>";else htm+="<br>";htm+="</span>";var spTxt=(SpecialCommentary&&this.requestSpc)?SpecialCommentary:"";var spKeys="";if(spTxt){for(key in Specials)spKeys+=key+" = "+Specials[key]+";&nbsp;&nbsp;";spKeys="<div class='fSize11'>"+spTxt+"<div class='SpecialSeparator'>"+SpecialExplanation+"<br>"+spKeys+"</div></div><br>";}
htm+="<div align='center' class='listInstructions' id='spTxtDiv'>"+spKeys+"</div>";htm+=(window.LastMinuteCommentary&&this.requestLmn)?"<div align='center' class='listInstructions'>"+LastMinuteCommentary+"</div>":"";document.write(htm);}
function sortAscNum(a,b){return a[List.sortIndex]<b[List.sortIndex]?-1:a[List.sortIndex]>b[List.sortIndex]?1:a[List.sortIndex]==b[List.sortIndex]?List.sortIndex:a[List.sortIndex]<b[List.sortIndex]?-1:1;}
function sortDesNum(b,a){return a[List.sortIndex]<b[List.sortIndex]?-1:a[List.sortIndex]>b[List.sortIndex]?1:a[List.sortIndex]==b[List.sortIndex]?List.sortIndex:a[List.sortIndex]<b[List.sortIndex]?-1:1;}
function sortAscStr(a,b){var aU=a[List.sortIndex].toUpperCase();var bU=b[List.sortIndex].toUpperCase();return aU<bU?-1:aU>bU?1:a[List.sortIndex]==b[List.sortIndex]?List.sortIndex:a[List.sortIndex]<b[List.sortIndex]?-1:1;}
function sortDesStr(b,a){var aU=a[List.sortIndex].toUpperCase();var bU=b[List.sortIndex].toUpperCase();return aU<bU?-1:aU>bU?1:a[List.sortIndex]==b[List.sortIndex]?List.sortIndex:a[List.sortIndex]<b[List.sortIndex]?-1:1;}
function filterData(filterNum){this.requestSpc=false;this.requestPrv=false;this.requestPub=false;this.sortIndex=-1;this.sortCol=-1;switch(filterNum){case 1:this.requestSpc=true;var spKeys="";if(SpecialCommentary){spKeys="<div align=center class='fSize12' style='margin:12px 0px 0px 0px;'>";for(key in Specials)spKeys+=key+" = "+Specials[key]+";&nbsp;&nbsp;";spKeys+="</div>";}
document.getElementById("listTitleDiv").innerHTML=ListingsTitle.Specials;document.getElementById("spTxtDiv").innerHTML=SpecialCommentary+spKeys;document.getElementById("ListingsDiv").innerHTML=this.getListings();break;case 2:var thisPW="";var pwCookie=GetCookie("PrivateListingsPW");if(pwCookie==PrivateListingsPW)thisPW=PrivateListingsPW;else thisPW=prompt("Password Provided by Tropical Villa Vacations:","");var pwFailed=1;if(thisPW){if(thisPW==PrivateListingsPW){this.requestPrv=true;var pwFailed=0;document.getElementById("spTxtDiv").innerHTML="";document.getElementById("ListingsDiv").innerHTML=this.getListings();SetCookie("PrivateListingsPW",PrivateListingsPW,null,"/");document.getElementById("listTitleDiv").innerHTML=ListingsTitle.Private;}
else
alert("Sorry, you've entered an incorrect password...");}
if(pwFailed){document.getElementById("sort3").checked=true;this.filterData(3);}
break;case 3:this.requestPub=true;document.getElementById("spTxtDiv").innerHTML="";document.getElementById("listTitleDiv").innerHTML=ListingsTitle.Public;break;default:if(!window.gErrReported)reportError("Internal Switch/Case Error","Switch/Case Error at List.filterData(); Bad Switch: "+filterNum);window.gErrReported=true;}
List.init(0);this.sortMe(this.lastSortCol,1);}
function restoreSort(){if(this.showListings){if(this.sortState){try{if(this.requestSpc){this.requestSpc=true;this.filterData(1);}
else if(this.requestPrv){this.requestPrv=true;this.filterData(2);}
else if(this.requestPub){this.requestPub=true;this.filterData(3);}
this.sortCol=parseInt(this.sortState.split("_")[0]);this.sortMe(this.sortCol);}
catch(Err){clearTimeout(List.restoreSortTimer);self.status="Initializing \"List.restoreSort()\" method, one moment please...";eval("List.restoreSortTimer = setTimeout( 'if( window.List ) List.restoreSort();', 250 );");}}
var picState=GetCookie("PicState");if(picState){var PicState=picState.split("_");for(var i=2;i<PicState.length;i++)PicState[i]=parseInt(PicState[i]);if(qStr=PicState[0])List.showPics(PicState[1],PicState[2],PicState[3],PicState[4]);}}}
function sortMe(sortIndex,reqFilter){function subResetSortStatus(nOmit){if(nOmit!=1)List.sortNmDes=1;if(nOmit!=2)List.sortLcDes=1;if(nOmit!=3)List.sortIsDes=1;if(nOmit!=4)List.sortBrDes=1;if(nOmit!=5)List.sortBaDes=1;if(nOmit!=6)List.sortPlDes=1;if(nOmit!=7)List.sortSpDes=1;if(nOmit!=8)List.sortAcDes=1;if(nOmit!=9)List.sortRtDes=1;if(nOmit!=10)List.sortOcDes=1;if(nOmit!=11)List.sortStDes=1;if(nOmit!=12)List.sortScDes=1;}
var showDownArr;var nCurFilter=3;switch(sortIndex){case 1:this.sortIndex=1;this.sortCol=1;if(reqFilter)this.sortNmDes=(this.sortNmDes)?0:1;if(this.sortNmDes){Villas.sort(this.sortAscStr);this.sortNmDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesStr);this.sortNmDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortNmDes)?0:1));subResetSortStatus(this.sortCol);break;case 2:this.sortIndex=2;this.sortCol=2;if(reqFilter)this.sortLcDes=(this.sortLcDes)?0:1;if(this.sortLcDes){Villas.sort(this.sortAscStr);this.sortLcDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesStr);this.sortLcDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortLcDes)?0:1));subResetSortStatus(this.sortCol);break;case 3:this.sortIndex=3;this.sortCol=3;if(reqFilter)this.sortIsDes=(this.sortIsDes)?0:1;if(this.sortIsDes){Villas.sort(this.sortAscStr);this.sortIsDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesStr);this.sortIsDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortIsDes)?0:1));subResetSortStatus(this.sortCol);break;case 4:this.sortIndex=Villas[0].length;this.sortCol=4;if(reqFilter)this.sortBrDes=(this.sortBrDes)?0:1;for(var i=0;i<Villas.length;i++)Villas[i][this.sortIndex]=(Villas[i][4][0]+Villas[i][4][1])/2;if(this.sortBrDes){Villas.sort(this.sortAscNum);this.sortBrDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesNum);this.sortBrDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortBrDes)?0:1));subResetSortStatus(this.sortCol);break;case 5:this.sortIndex=Villas[0].length;this.sortCol=5;if(reqFilter)this.sortBaDes=(this.sortBaDes)?0:1;for(var i=0;i<Villas.length;i++)Villas[i][this.sortIndex]=(Villas[i][5][0]+Villas[i][5][1])/2;if(this.sortBaDes){Villas.sort(this.sortAscNum);this.sortBaDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesNum);this.sortBaDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortBaDes)?0:1));subResetSortStatus(this.sortCol);break;case 6:this.sortIndex=6;this.sortCol=6;if(reqFilter)this.sortPlDes=(this.sortPlDes)?0:1;if(this.sortPlDes){Villas.sort(this.sortAscNum);this.sortPlDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesNum);this.sortPlDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortPlDes)?0:1));subResetSortStatus(this.sortCol);break;case 7:this.sortIndex=7;this.sortCol=7;if(reqFilter)this.sortSpDes=(this.sortSpDes)?0:1;if(this.sortSpDes){Villas.sort(this.sortAscNum);this.sortSpDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesNum);this.sortSpDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortSpDes)?0:1));subResetSortStatus(this.sortCol);break;case 8:this.sortIndex=8;this.sortCol=8;if(reqFilter)this.sortAcDes=(this.sortAcDes)?0:1;if(this.sortAcDes){Villas.sort(this.sortAscNum);this.sortAcDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesNum);this.sortAcDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortAcDes)?0:1));subResetSortStatus(this.sortCol);break;case 9:this.sortIndex=Villas[0].length;this.sortCol=9;if(reqFilter)this.sortRtDes=(this.sortRtDes)?0:1;for(var i=0;i<Villas.length;i++){if(typeof Villas[i][9][0]=="number")Villas[i][this.sortIndex]=(Villas[i][9][0]+Villas[i][9][1])/2;else{var lo=Number.POSITIVE_INFINITY;var Rates=Villas[i][9];for(var k=0;k<Rates.length-2;k++)if(Rates[k][0]<lo)lo=Rates[k][0];Villas[i][this.sortIndex]=lo;}}
if(this.sortRtDes){Villas.sort(this.sortAscNum);this.sortRtDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesNum);this.sortRtDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortRtDes)?0:1));subResetSortStatus(this.sortCol);break;case 10:this.sortIndex=Villas[0].length;this.sortCol=10;if(reqFilter)this.sortOcDes=(this.sortOcDes)?0:1;for(var i=0;i<Villas.length;i++)Villas[i][this.sortIndex]=(Villas[i][10][0]+Villas[i][10][1])/2;if(this.sortOcDes){Villas.sort(this.sortAscNum);this.sortOcDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesNum);this.sortOcDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortOcDes)?0:1));subResetSortStatus(this.sortCol);break;case 11:this.sortIndex=11;this.sortCol=11;if(reqFilter)this.sortStDes=(this.sortStDes)?0:1;if(this.sortStDes){Villas.sort(this.sortAscStr);this.sortStDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesStr);this.sortStDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortStDes)?0:1));subResetSortStatus(this.sortCol);break;case 12:this.sortIndex=12;this.sortCol=12;if(reqFilter)this.sortScDes=(this.sortScDes)?0:1;if(this.sortScDes){Villas.sort(this.sortAscStr);this.sortScDes=0;showDownArr=0;}
else{Villas.sort(this.sortDesStr);this.sortScDes=1;showDownArr=1;}
SetCookie("sortState",this.sortCol+"_"+((this.sortScDes)?0:1));subResetSortStatus(this.sortCol);break;default:if(!window.gErrReported)reportError("Internal Switch/Case Error","Switch/Case Error at List.sortMe; Bad Switch: "+sortIndex);window.gErrReported=true;}
document.getElementById("ListingsDiv").innerHTML="<br/>"+this.getListings();if(this.sortCol<12){var Span=document.getElementById("a"+sortIndex);Span.innerHTML=(showDownArr)?"&nbsp;&darr;":"&nbsp;&uarr;";}
else{if(this.requestSpc){var Span=document.getElementById("a"+sortIndex);Span.innerHTML=(showDownArr)?"&nbsp;&darr;":"&nbsp;&uarr;";}}
List.init(0);return false;}
function preloadMsg(Img,nMsg){if(List.preloadVerbose){switch(nMsg){case 1:document.title="Image onLoad; nVil: "+List.nVillaCaching+"; nImg: "+List.nImgCached+"; Src: "+Img.src;break;case 2:document.title="Image onError; nVil: "+List.nVillaCaching+"; nImg: "+List.nImgCached+"; Src: "+Img.src;break;case 3:document.title="Image onAbort; nVil: "+List.nVillaCaching+"; nImg: "+List.nImgCached+"; Src: "+Img.src;break;case 4:document.title="Called by List.preloadTN.subContinue; nVil: "+List.nVillaCaching+"; nImg: "+List.nImgCached;break;case 5:document.title="Preloading completed; "+List.nVillaCaching+" villas preloaded..."
break;}}}
function preloadTN(){function subContinue(){List.nVillaCaching++;List.nImgCached=0;if(Villas[List.nVillaCaching]){List.preloadMsg(null,4);setTimeout("if( window.List ) List.preloadTN();",List.preloadDelay);}
else{List.preloadMsg(null,5);PL.run();}}
var Images=Villas[this.nVillaCaching][18];if(Images){if(Villas[this.nVillaCaching][18][this.nImgCached]){if(this.requestPub&&Villas[this.nVillaCaching][13]||this.requestPrv&&Villas[this.nVillaCaching][14]){var tn=Villas[this.nVillaCaching][18][this.nImgCached][0].replace(/\.jpg$/i, "TN.jpg" );
tn=tn.replace(/\.jpeg$/i, "TN.jpeg" );
tn=tn.replace(/\.gif$/i, "TN.gif" );
var iSrc="images/"+Villas[this.nVillaCaching][11]+"-"+Villas[this.nVillaCaching][0]+"/"+tn;if(this.DivImgPreloader){TnPreloader=this.DivImgPreloader.firstChild;TnPreloader.src=iSrc;}
else{this.DivImgPreloader=document.createElement("div");document.body.appendChild(this.DivImgPreloader);this.DivImgPreloader.style.display="none";this.DivImgPreloader.innerHTML="<img src='"+iSrc+"' onload='List.preloadMsg( this, 1 ); List.nImgCached++; setTimeout( \"if( window.List ) List.preloadTN();\", List.preloadDelay );' onerror='List.preloadMsg( this, 2 ); List.nImgCached++; setTimeout( \"if( window.List ) List.preloadTN();\", List.preloadDelay );' onabort='List.preloadMsg( this, 3 ); List.nImgCached++; setTimeout( \"if( window.List ) List.preloadTN();\", List.preloadDelay );'>";}}
else
subContinue();}
else
subContinue();}
else
subContinue();}
function init(pageLoad){if(this.showListings){try{var TD=document.getElementsByTagName("td");for(var i=0;i<TD.length;i++){if(TD[i].id.charAt(0)=="c"){var colNumStr=TD[i].id.substring(1,3).replace(/^0+/, "" );
colNum=parseInt(colNumStr);if(colNum==this.sortCol)TD[i].className="listRowSort";}}
self.status="";var Links=document.getElementsByTagName("a");for(var i=0;i<Links.length;i++){if(Links[i].className=="col"){Links[i].onclick=function(){return List.sortMe(parseInt(this.nextSibling.id.substring(1,this.nextSibling.id.length)));}
Links[i].onmouseover=function(){this.title="Sort properties by "+this.innerHTML;self.status=this.title;if(window.DM)DM.killOthers(this);return true;}
Links[i].onmouseout=function(){self.status="";return true;}}}
if(pageLoad&&this.requestPrv)List.getPrivatePopup(null,null);}
catch(Err){clearTimeout(List.initSortPageTimer);self.status="Initializing \"List.init("+pageLoad+")\" method, one moment please...";eval("List.initSortPageTimer = setTimeout( 'if( window.List ) List.init("+pageLoad+")', 250 );");}}}
function collapse(rowNum){if(List.lastRowNum>=0){var TrImg=document.getElementById("i"+rowNum);TrImg.style.display="none";DeleteCookie("PicState","/");this.lastRowNum=-1;var TrDat=TrImg.previousSibling;var Td=TrDat.firstChild;while(Td){if(Td.className!="listRowSortOn")Td.className="listRowOff";else
Td.className="listRowSort";Td=Td.nextSibling;}}}
function showPics(qStrLink,rowNum,cal,tst){if(window.PF&&PF.formatIsPF||this.requestLmn)return;if(this.lastRowNum>=0){var TrImgLast=document.getElementById("i"+this.lastRowNum);TrImgLast.style.display="none";var TrDatLast=TrImgLast.previousSibling;var TDLast=TrDatLast.firstChild;while(TDLast){if(TDLast.className!="listRowSortOn")TDLast.className="listRowOff";else
TDLast.className="listRowSort";TDLast=TDLast.nextSibling;}}
var TrImg=document.getElementById("i"+rowNum);TrImg.style.display="";var TrDat=TrImg.previousSibling;var TdDat=TrDat.firstChild;while(TdDat){if(TdDat.className!="listRowSort")TdDat.className="listRowOn";else
TdDat.className="listRowSortOn";TdDat=TdDat.nextSibling;}
var Td=TrImg.firstChild;Td.setAttribute("align","center");var imgFolder=qStrLink.replace(/^data=fs-|\.js$/g, "" );var VillaId=imgFolder.replace(/^.+-/, "" );
var theDomain=(theHost=="127.0.0.1")?"http://www.tropicalvillavacations.com/":"";for(var i=0;i<Villas.length;i++){if(Villas[i][0]==VillaId){var Images=Villas[i][18];var img="";if(Images){for(var k=0;k<Images.length-1;k++){var tn=Images[k][0].replace(/\.jpg$/i, "TN.jpg" );
tn=tn.replace(/\.jpeg$/i, "TN.jpeg" );
tn=tn.replace(/\.gif$/i, "TN.gif" );
img+="<a href='"+theDomain+"images/"+imgFolder+"/"+Images[k][0]+"' onClick='return enlargement( \""+Villas[i][1].replace(/\"/g, "^" ) + ( ( Images[ k ][ 3 ] ) ?  ": <span style=font-weight:normal;>" + Images[ k ][ 3 ] + "</span>" : "" ) + "\", this );'><img src='" + theDomain + "images/" + imgFolder + "/" + tn + "' width='100' height='75' class='tn' hspace=5 title='" + Msg.enlarge + "'></a>";
if(k==5)break;}}
else
img+="<br><div style='width:660px; margin:0px 0px 0px 10px;'>Photo Previews Not Available, Check Back Soon...</div>";img+="<a href='javascript:List.collapse( "+rowNum+" );' class='ListCollapse' title='Close (collapse) this photo display'>&times;</a>";var htm="";htm+="<table align=center border=0 cellspacing=0 cellpadding=0><tr><td align=right class=listTnRow id=ListLinksTD style='padding:0px 3px 0px 0px;'>";htm+="<a href='javascript:PopUp.openWin( \"ss.html?"+qStrLink+"\", 3 );' title='View photos via automated slide-show' class='ListLink'>Slide-Show</a><br>";htm+="<a href='thumbnails.html?"+qStrLink+"' title='View photos as clickable thumbnails' class='ListLink'>More Photos</a><br>";if(cal)htm+="<a href='"+((GetCookie("writeP"))?"calendar-villa.aspx":"calendar-villa.html")+"?"+qStrLink+"' title='View our booking calendar & find open dates' class='ListLink'>Reservation Calendar</a><br>";htm+="<a href='fact-sheet.html?"+qStrLink+"' title='Read our detailed Fact Sheet' class='ListLink'>Rates & Details</a><br>";if(tst)htm+="<a href='testmon.html?"+qStrLink+"' title='Read what our satisfied clients said about this villa' class='ListLink'>Testimonials</a><br>";htm+="</td><td class=listTnRow>"+img+"</td>";htm+="<td class=listTnRow style='padding:0px 0px 0px 15px;'><a href='javascript:launchCalculator( \""+VillaId+"\" )' title='Launch Rental Calculator' class='ListLink'>Launch Rental Calculator</a><br><a href='javascript:void(0);' onClick='showRates( \""+VillaId+"\" ); return false;' title='View Rate Chart' class='ListLink'>View Rates for this property</a><br></td>";htm+="</tr></table>";Td.innerHTML=htm;break;}}
this.lastRowNum=rowNum;SetCookie("PicState",qStr+"_"+qStrLink+"_"+rowNum+"_"+cal+"_"+tst,null,"/");}
function getListings(){var htm="";if(this.showListings){if(this.requestPrv&&!GetCookie("PrivateListingsPW"))htm="<div style='margin:50px 0px 50px 0px;' class='bold'>&#149; You must <a href='javascript:void(0);' onClick='List.getPrivatePopup( this, event );' title='A password is required'>Log-In</a> to view our Private Villa Collection</div>";else{htm+="<table align=center border=0 cellspacing=0 cellpadding=0 class=fSize11><tr align=center><td class=listRow><a href=javascript:void(0) class=col>NAME</a><span id=a1></span></td><td class=listRow><a href=javascript:void(0) class=col>LOCATION</a><span id=a2></span></td><td class=listRow><a href=javascript:void(0) class=col>ISLAND</a><span id=a3></span></td><td class=listRow><a href=javascript:void(0) class=col>BRs</a><span id=a4></span></td><td class=listRow><a href=javascript:void(0) class=col>BAs</a><span id=a5></span></td><td class=listRow><a href=javascript:void(0) class=col>POOL</a><span id=a6></span></td><td class=listRow><a href=javascript:void(0) class=col>SPA</a><span id=a7></span></td><td class=listRow><a href=javascript:void(0) class=col>A/C</a><span id=a8></span></td>";if(this.requestSpc)htm+="<td class=listRow><a href=javascript:void(0) class=col>RATE/NT</a><span id=a9></span></td>";else htm+="<td class=listRow><a href=javascript:void(0) class=col>"+RatesAreFor+" Rates From</a><span id=a9></span></td>";htm+="<td class=listRow><a href=javascript:void(0) class=col>OCC</a><span id=a10></span></td><td class=listRow><a href=javascript:void(0) class=col>SETTING</a><span id=a11></span></td>";if(this.requestSpc)htm+="<td class=listRow><a href=javascript:void(0) class=col>PERIOD</a><span id=a12></span></td>";htm+="</tr>";var headerRow="<tr align=center><td class=headInner>Name</td><td class=headInner>Location</td><td class=headInner>Island</td><td class=headInner>BRs</td><td class=headInner>BAs</td><td class=headInner>Pool</td><td class=headInner>Spa</td><td class=headInner>A/C</td><td class=headInner>"+((this.requestSpc)?"":RatesAreFor)+" Rates From</td><td class=headInner>Occ</td><td class=headInner>Setting</td>";if(this.requestSpc)headerRow+="<td class=headInner>Period</td>";headerRow+="</tr>";nVillasVisible=0;for(var i=0;i<Villas.length;i++){var wbv = ( /waileabeachvilla/i.test(Villas[i][0]));var showWbvOnly=(window.qStr&&window.qStr.gV("show")=="wbv");if(showWbvOnly&&!wbv)continue;var pub=(Villas[i][13])?true:false;var prv=(Villas[i][14])?true:false;var upv=(Villas[i][15])?true:false;var cal=(Villas[i][0]&&window.CALENDAR_RECORDS_HT&&CALENDAR_RECORDS_HT[Villas[i][0]]&&(publicUser&&CALENDAR_RECORDS_HT[Villas[i][0]][5]<=2||staffUser&&CALENDAR_RECORDS_HT[Villas[i][0]][5]!=4))?1:0;var tst=(Villas[i][16])?1:0;var spc=(Villas[i][12].length>0&&pub);var qStr="data=fs-"+Villas[i][11]+"-"+Villas[i][0]+".js";var fsFile="fs-"+Villas[i][11]+"-"+Villas[i][0]+".js";var showSpc=(this.requestSpc&&spc);var showPub=(this.requestPub&&pub);var showPrv=(this.requestPrv&&prv);if(showSpc||showPub||showPrv){if(nVillasVisible>0&&nVillasVisible%14==0)htm+=headerRow;htm+="<tr><td colspan="+((showSpc)?12:11)+"><div style='height:8px; overflow:hidden; visibility:hidden;'>X</div></td></tr><tr align=center id=d"+nVillasVisible+"><td class=listRow id=c01"+nVillasVisible+"><a href='fact-sheet.html?"+qStr+"' onMouseOver='List.showPics( \""+qStr+"\", "+nVillasVisible+", "+cal+","+tst+" ); self.status = \"Learn more about "+Villas[i][1].replace(/\"/g, "\\\"" )  + "\"; return true;' onMouseOut='self.status = \"\";' class=rowLink>" + Villas[ i ][ 1 ] + "</a>" +
"</td><td class=listRow id=c02"+nVillasVisible+">"+Villas[i][2]+"</td><td class=listRow id=c03"+nVillasVisible+">"+List.getIsland(Villas[i][3],Villas[i][0])+"</td><td class=listRow id=c04"+nVillasVisible+">"+((Villas[i][4][0]==Villas[i][4][1])?Villas[i][4][0]:Villas[i][4][0]+"-"+Villas[i][4][1])+"</td><td class=listRow id=c05"+nVillasVisible+">"+((Villas[i][5][0]==Villas[i][5][1])?Villas[i][5][0]:Villas[i][5][0]+"-"+Villas[i][5][1])+"</td><td class=listRow id=c06"+nVillasVisible+">"+((Villas[i][6])?"Yes":"No")+"</td><td class=listRow id=c07"+nVillasVisible+">"+((Villas[i][7])?"Yes":"No")+"</td><td class=listRow id=c08"+nVillasVisible+">"+((Villas[i][8])?"Yes":"No")+"</td><td class=listRow id=c09"+nVillasVisible+">";if(this.requestSpc)htm+="Inquire";else{var Rates=Villas[i][9];if(typeof Rates[0]=="number"){if(Rates[0]==Rates[1])htm+=(Rates[0]==0)?"Inquire":"$"+Rates[0];else if(Rates[0]==0)htm+="up to $"+Rates[1];else
htm+="$"+Rates[0]+"-"+Rates[1];}
else{var lo=Number.POSITIVE_INFINITY;for(var k=0;k<Rates.length-2;k++)if(Rates[k][0]<lo)lo=Rates[k][0];if(lo==Number.POSITIVE_INFINITY){if(!window.gErrReported){reportError("Rates error","Malformed rates at List.getListings method; Unable to find low rate for: "+Villas[i][1]+"; ID:"+Villas[i][0]+" in listings.js file");window.gErrReported=true;}}
htm+="$"+lo+((Rates.length>3)?"+":"");}}
htm+="</td><td class=listRow id=c10"+nVillasVisible+">"+((Villas[i][10][0]==Villas[i][10][1])?Villas[i][10][0]:Villas[i][10][0]+"-"+Villas[i][10][1])+"</td><td class=listRow id=c11"+nVillasVisible+">"+List.getSetting(Villas[i][11],Villas[i][0])+"</td>";if(this.requestSpc)htm+="<td class=listRow id=c12"+nVillasVisible+">"+Villas[i][12]+"</td>";htm+="</tr>";htm+="<tr id=i"+nVillasVisible+"><td colspan="+((showSpc)?12:11)+"></td></tr>";nVillasVisible++;}}
if(nVillasVisible==0){htm+="<tr align=center><td class=headInner colspan="+((showSpc)?12:11)+">NO LISTINGS AVAILABLE</td></tr>";}
htm+="</table><br>";}}
htm+="<div style='margin:0px 0px 16px 0px; white-space:nowrap;'><span id=listLinksDiv>";if(!this.requestSpc)htm+="&nbsp;&nbsp;<a href='listings.html?show=sp' onMouseOver='self.status=this.title; return true;' onMouseOut='self.status=\"\"; return true;' title='Villas with holiday availability'>Christmas & New Years</a>&nbsp;&nbsp;&#149;";if(!this.requestLmn)htm+="<span class='showLastMinute'>&nbsp;&nbsp;<a href='listings.html?show=lm' onMouseOver='self.status=this.title; return true;' onMouseOut='self.status=\"\"; return true;' title='Villas with last-minute availability'>Last Minute Specials</a>&nbsp;&nbsp;&#149;</span>";if(!this.requestPub)htm+="&nbsp;&nbsp;<a href='listings.html' onMouseOver='self.status=this.title; return true;' onMouseOut='self.status=\"\"; return true;' title='Our entire villa collection'>Accommodation List</a>&nbsp;&nbsp;&#149;";if(!this.requestPrv&&GetCookie("PrivateListingsPW"))htm+="&nbsp;&nbsp;<a href='listings.html?show=pv'>Private Villas</a>&nbsp;&nbsp;&#149;";htm+="</span>";htm+="&nbsp;&nbsp;<A HREF='javascript:void( 0 );' onMouseOver='self.status=this.title; return true;' onMouseOut='self.status=\"\"; return true;' onClick='getTravelAgent(); List.collapse( List.lastRowNum ); PF.prep( [ [ \"listRowSortOn\", \"listRowSort\" ], [ \"listRowOff\", \"listRow\" ] ] ); PF.setView( this, [ \"page_top\", \"instructions\", \"listLinksDiv\", \"page_bottom\" ], [ \"listRow\", \"col\", \"rowLink\", \"listRowSort\", \"headInner\" ], true ); PF.printPage( this );' onContextMenu='List.collapse( List.lastRowNum ); PF.prep( [ [ \"listRowSortOn\", \"listRowSort\" ], [ \"listRowOff\", \"listRow\" ] ] ); PF.setView( this, [ \"page_top\", \"instructions\", \"listLinksDiv\", \"page_bottom\" ], [ \"listRow\", \"col\", \"rowLink\", \"listRowSort\", \"headInner\" ], false ); return false;' TITLE='"+PF.dText[2]+"' ID='prnFrLink'>"+PF.dText[0]+"</A>";htm+="</div>";return htm;}
function getPrivatePopup(Link,evt){if(qStr&&qStr.gV("pw")==PrivateListingsPW){SetCookie("PrivateListingsPW",PrivateListingsPW,null,"/");List.requestPrv=true;document.getElementById("spTxtDiv").innerHTML="";document.getElementById("ListingsDiv").innerHTML=List.getListings();document.getElementById("listTitleDiv").innerHTML=ListingsTitle.Private;}
else if(!GetCookie("PrivateListingsPW")){var htm="<div><table align='center' border='0' cellspacing='0' cellpadding='0' class='fSize11 fColorGray51'><tr align='center'><td nowrap>Password:</td><td style='padding:0px 6px 0px 6px;'><input type='text' id='Private_PW' style='width:140px;' onkeypress='if( window.event && window.event.keyCode == 13 || event.which == 13 ) { List.showPrivate(); return false; }' /></td><td><input type='button' value='OK' onClick='List.showPrivate();' /></td></tr><tr align='center'><td colspan='3' class='fSize10' style='padding:10px 0px 0px 0px;'><div id='Wrong_PW' class='fColorRed'></div>Please enter the password provided<br> by Tropical Villa Vacations</td></tr></table></div>";if(Link)DW.createWindow(["Private Villas",htm],[0,300,0],Link,evt,10);else
DW.createWindow(["Private Villas",htm],[0,300,0],Link,evt,10,[3,0,145]);gId('Private_PW').focus();}}
function showPrivate(){var Private_PW=document.getElementById("Private_PW");if(Private_PW.value){if(Private_PW.value==PrivateListingsPW){SetCookie("PrivateListingsPW",PrivateListingsPW,null,"/");List.requestPrv=true;document.getElementById("spTxtDiv").innerHTML="";document.getElementById("ListingsDiv").innerHTML=List.getListings();document.getElementById("listTitleDiv").innerHTML=ListingsTitle.Private;DW.removeWin();}
else{document.getElementById("Wrong_PW").innerHTML="Wrong password, please try again";document.getElementById("Private_PW").focus();}}
else
document.getElementById("Private_PW").focus();}}
function getVillaName(pageType){var pTitle="";if(fileName!="fact-sheet.html"&&fileName!="testmon.html"&&fileName!="calendar-villa.html"&&fileName!="calendar-villa.aspx")pTitle="<div align=center class='bold'>"+Villa.Name[1]+pageType+"</DIV>";return pTitle;}
function addToFavs(pName,pLoc,pIsle){if(cookiesOn){var thisProp=pName+((pLoc)?": "+pLoc:"")+((pIsle)?", "+pIsle:"");var existingProps=GetCookie("FavProps");if(existingProps==null)SetCookie("FavProps",thisProp,null,"/");else{if(existingProps.indexOf(thisProp)==-1){existingProps+="|"+thisProp;SetCookie("FavProps",existingProps,null,"/");}}
PopUp.openWin("favorites.html",0,0,0,0,600,300,1,1,2);}
else alert("Sorry, you must enable cookies to use this feature...");}
function writeSummaryLinks(thePage){if(qStr&&qStr.indexOf("yacht-")>=0)return;var testLink="",staffLink="";var calLink='<TD COLSPAN=2></TD><TD NOWRAP WIDTH=5></TD>';var calBehavior=(Villas[gVillaRecNum]&&window.CALENDAR_RECORDS_HT&&CALENDAR_RECORDS_HT[Villas[gVillaRecNum][0]])?CALENDAR_RECORDS_HT[Villas[gVillaRecNum][0]][5]:0;if(Villa.Testimonials){testLink="<TD>";var linkTag="<A HREF='testmon.html?"+qStr+"' onMouseover='activateBut(\"sum-testimonials\"); activateMsg( dText[25] ); return true;' onMouseout='deActivateBut(\"sum-testimonials\"); deActivateMsg( 31 ); self.status=dText[0]; return true;'>";testLink+=linkTag+"<IMG SRC='images/FlowerOff.png' NAME='sum-testimonials' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"Testimonials</A></TD>";}
if(staffUser){staffLink="<TD>";var linkTag="<A HREF='javascript:void(0);' onMouseover='activateBut(\"Staff-Functions\"); if( window.DM ) DM.start( this, event, \"staff_only\", \"below\" ); return true;' onMouseout='deActivateBut(\"Staff-Functions\"); if( window.DM ) DM.hide(); return true;' style='cursor:default;'>";staffLink+=linkTag+"<IMG SRC='images/FlowerOff.png' NAME='Staff-Functions' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"Staff Functions</A></TD>";}
if(calBehavior&&((publicUser&&calBehavior<=2)||(staffUser&&calBehavior!=4))){calLink="<TD>";var linkTag="<A HREF='"+((GetCookie("writeP"))?"calendar-villa.aspx":"calendar-villa.html")+"?"+qStr+"' onMouseover='activateBut(\"sum-calendar\"); activateMsg( dText[23] ); return true;' onMouseout='deActivateBut(\"sum-calendar\"); deActivateMsg( 31 ); self.status=dText[0]; return true;'>";calLink+=linkTag+"<IMG SRC='images/FlowerOff.png' NAME='sum-calendar' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"View Calendar</A></TD><TD NOWRAP WIDTH=5></TD>";}
var remarks="";if(thePage=="commentary"){remarks="<TABLE ALIGN=center WIDTH=900 BORDER=0 CELLSPACING=0 CELLPADDING=1 BGCOLOR=#314de7><TR><TD CLASS=fSize10><TABLE ALIGN=center WIDTH=900 BORDER=0 CELLSPACING=0 CELLPADDING=8><TR><TD CLASS=fSize10><SPAN CLASS=bold>REMARKS</SPAN>: "+Villa.Commentary+"</TD></TR></TABLE></TD></TR></TABLE>";}
var table='<P>'+"<div align='center'>"+getCallout(31)+"</div><BR><TABLE ALIGN=center BORDER=0 CELLSPACING=0 CELLPADDING=0'><TR><TD>";var linkTag="<A HREF='javascript:PopUp.openWin( \"ss.html?"+qStr+"&vname="+Villas[gVillaRecNum][1]+"\", 3 );' onMouseover='activateBut(\"sum-slide-show\"); activateMsg( dText[18] ); return true;' onMouseout='deActivateBut(\"sum-slide-show\"); deActivateMsg( 31 ); self.status=dText[0]; return true;'>";table+=linkTag+"<IMG SRC='images/FlowerOff.png' NAME='sum-slide-show' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"Run Slide-Show</A></TD><TD NOWRAP WIDTH=5></TD><TD>";var linkTag="<A HREF='thumbnails.html?"+qStr+"' onMouseover='activateBut(\"sum-photos\"); activateMsg( dText[ 19 ] ); return true;' onMouseout='deActivateBut(\"sum-photos\"); deActivateMsg( 31 ); self.status=dText[0]; return true;'>";table+=linkTag+"<IMG SRC='images/FlowerOff.png' NAME='sum-photos' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"View Photos</A></TD><TD NOWRAP WIDTH=5></TD><TD>";var linkTag="<A HREF='fact-sheet.html?"+qStr+"#External' onMouseover='activateBut(\"sum-prop_des\"); activateMsg( dText[ 20 ] ); self.status=dText[20]; return true;' onMouseout='deActivateBut(\"sum-prop_des\"); deActivateMsg( 31 ); self.status=dText[0]; return true;'>";table+=linkTag+"<IMG SRC='images/FlowerOff.png' NAME='sum-prop_des' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"Rates & Details</A></TD><TD NOWRAP WIDTH=5></TD>";var action=(framed)?"A HREF='"+document.location.href+"' TARGET='_top' onClick='alert(\"Sorry, to use this feature, we must reload you into our parent domain: tropicalvillavacations.com\\n\\n==> Click OK & wait for this page to reload, then click Add-To-Favorites again...\"); return true;'":"A HREF='javascript:addToFavs( Villa.Name[1], Villa.Loc[1], Villa.Island[1] )'";table+="<TD>";var linkTag="<"+action+" onMouseover='activateBut(\"sum-fav\"); activateMsg( dText[21] ); return true;' onMouseout='deActivateBut(\"sum-fav\"); deActivateMsg( 31 ); self.status=dText[0]; return true;'>";table+=linkTag+"<IMG SRC='images/FlowerOff.png' NAME='sum-fav' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"Add to Favorites</A></TD>";var linkTag="<a href='javascript:launchCalculator();' onMouseover='activateBut(\"calc\"); activateMsg( dText[34] );' onMouseout='deActivateBut(\"calc\"); deActivateMsg( 31 );'>";table+="<TD>"+linkTag+"<IMG SRC='images/FlowerOff.png' NAME='calc' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"Calculate Rent</A></TD></TR></TABLE><TABLE ALIGN=center BORDER=0 CELLSPACING=0 CELLPADDING=0><TR>"+calLink+"<TD>";var linkTag="<A HREF='javascript:tellAFriend( \"Property\", document.location.href );' onMouseover='activateBut(\"sum-email\"); activateMsg( dText[22] ); return true;' onMouseout='deActivateBut(\"sum-email\"); deActivateMsg( 31 ); self.status=dText[0]; return true;'>";table+=linkTag+"<IMG SRC='images/FlowerOff.png' NAME='sum-email' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"Email to a Friend</A></TD><TD NOWRAP WIDTH=5></TD><TD>";var linkTag="<A HREF='inquiry-form.html' TARGET='_top' onMouseover='activateBut(\"sum-reply\"); activateMsg( dText[24] ); return true;' onMouseout='deActivateBut(\"sum-reply\"); deActivateMsg( 31 ); self.status=dText[0]; return true;'>";table+=linkTag+"<IMG SRC='images/FlowerOff.png' NAME='sum-reply' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"Inquiry Reply Form</A></TD><TD NOWRAP WIDTH=5></TD>"+testLink;var linkTag="<A HREF='javascript:showRates();' TARGET='_top' onMouseover='activateBut(\"view-rates\"); activateMsg( dText[35] ); return true;' onMouseout='deActivateBut(\"view-rates\"); deActivateMsg( 31 ); self.status=dText[0]; return true;'>";table+="<TD>"+linkTag+"<IMG SRC='images/FlowerOff.png' NAME='view-rates' BORDER=0 ALIGN=middle WIDTH=40 HEIGHT=38 HSPACE=5 VSPACE=3></A></TD><TD NOWRAP CLASS=fSize11>"+linkTag+"View Rates</A></TD><TD NOWRAP WIDTH=5></TD>"+staffLink+"</TR></TABLE><TABLE ALIGN=center BORDER=0 CELLSPACING=0 CELLPADDING=6 WIDTH='900'><TR><TD NOWRAP COLSPAN=4 ALIGN=center>"+remarks+"</TD></TR></TABLE>";var html="";if(thePage=="summary"){html=getVillaName("")+table;} else{html=table;}
document.write("<div id=pLinks>"+html+"</div>");self.status="";}
function changeTitle(pName){if(pName)document.title="TropicalVillaVacations.com proudly presents: "+pName.replaceLiteral("&#39;","'");}
function getTravelAgent(){var pfLink=document.getElementById("prnFrLink");var PfTitle=document.getElementById("pfTitle");var calPage=(document.location.href.indexOf("calendar")>=0);var pName=(calPage)?gPropName:(window.Villa&&Villa.Name)?Villa.Name[1]:"";var pfLinkInnerHTML=pfLink.innerHTML.toLowerCase();var makePF=(pfLinkInnerHTML.indexOf("printer")>=0);if(makePF){var tvvTrvlAg=GetCookie("tvvTrvlAg");var defPromptVal=(tvvTrvlAg)?tvvTrvlAg:"";var myTitle=prompt("TRAVEL AGENTS: Enter your Company Name and Phone Number\nand it will print at the top of this page. Otherwise click Cancel.",defPromptVal);var villaName=(pName)?"<DIV CLASS='fSize12 bold'>"+pName.toUpperCase()+"</DIV>":"";if(myTitle){document.title=myTitle;PfTitle.innerHTML=villaName+myTitle+"<DIV CLASS='fSize9' style='font-weight:normal;'>This page printed on "+new Date().toLocaleString()+"</DIV><BR>";PfTitle.className="on";SetCookie("tvvTrvlAg",myTitle,expdate,"/");}
else{DeleteCookie("tvvTrvlAg","/");PfTitle.innerHTML=villaName+"TropicalVillaVacations.com: "+TVV.PhoneTollFree+" Toll Free<DIV CLASS='fSize9' style='font-weight:normal;'>This page printed on "+new Date().toLocaleString()+"</DIV><BR>";PfTitle.className="on";document.title=pageTitle;}}
else{document.title=pageTitle;PfTitle.className="off";}}
function PrinterFriendly(){this.dText=["Printer-Friendly Page","Revert Back to Default Web-Layout","Compacts page and maximizes it for your printer..","Reformat page back to default \"web\" layout..."];this.debug=0;this.formatIsPF=false;this.prep=prep;this.switchClassName=switchClassName;this.setView=setView;this.printPage=printPage;function prep(ClassArr){var allElements=document.getElementsByTagName("*");for(var i=0;i<allElements.length;i++){for(k in ClassArr){if(allElements[i].className==ClassArr[k][0]){allElements[i].className=ClassArr[k][1];if(this.debug)alert("PF.prep: "+ClassArr[k][0]+" ==> "+ClassArr[k][1]);}}}}
function switchClassName(ClassArr,makePF){this.formatIsPF=makePF;var allElements=document.getElementsByTagName("*");for(var i=0;i<allElements.length;i++){for(k in ClassArr){if(makePF){if(allElements[i].className==ClassArr[k]){allElements[i].className=ClassArr[k]+"PF";if(this.debug)alert("PF.switchClassName: "+ClassArr[k]+" ==> "+ClassArr[k]+"PF");}}
else{if(allElements[i].className==ClassArr[k]+"PF"){allElements[i].className=ClassArr[k];if(this.debug)alert("PF.switchClassName: "+ClassArr[k]+"PF ==> "+ClassArr[k]);}}}}}
function setView(TheLink,divArr,Classes,swapLinks){self.status="Setting styles of page elements, one moment please...";var makePF=(TheLink.innerHTML==this.dText[0]);var Links=document.getElementsByTagName("a");for(member in divArr){var TheDiv=document.getElementById(divArr[member]);try{if(makePF)TheDiv.style.display="none";else TheDiv.style.display="";}
catch(e){alert("ERROR: Div element \""+divArr[member]+"\" not found in method PF.setView");}}
if(makePF){with(document.body){if(PAGE_STYLE.margin)style.margin="0px";}
this.switchClassName(Classes,makePF);TheLink.innerHTML=this.dText[1];TheLink.title=this.dText[3];TheLink.style.fontWeight="bold";TheLink.style.color=(PAGE_STYLE.printFrLinkCol)?PAGE_STYLE.printFrLinkCol:"black";for(var i=0;i<Links.length;i++){if(swapLinks&&Links[i]!=TheLink){Links[i].style.color=(PAGE_STYLE.printFrLinkCol)?PAGE_STYLE.printFrLinkCol:"black";}}}
else{with(document.body){if(PAGE_STYLE.margin)style.margin=PAGE_STYLE.margin;}
this.switchClassName(Classes,makePF);TheLink.innerHTML=this.dText[0];TheLink.title=this.dText[2];TheLink.style.fontWeight="normal";TheLink.style.color="blue";for(var i=0;i<Links.length;i++){if(swapLinks&&Links[i]!=TheLink){;}}}
if(TheLink.focus&&!SF){TheLink.focus();TheLink.blur();}
self.status=" ";}
function printPage(TheLink){if(window.print&&TheLink.innerHTML==this.dText[1])self.print();}}
function Cars(){this.settings=new Array();this.settings["titleOff"]="Show makes & models...";this.settings["titleOn"]="Hide makes & models...";this.trimArrays=trimArrays;this.drawSportsLuxuryRows=drawSportsLuxuryRows;this.drawAvisRows=drawAvisRows;this.drawBudgetRows=drawBudgetRows;this.drawHertzRows=drawHertzRows;this.showModels=showModels;this.highlightRow=highlightRow;this.setVisibility=setVisibility;function trimArrays(){Avis["Low Season Dates"].length--;Avis["Mid Season Dates"].length--;Avis["Peak Season Dates"].length--;Budget["Low Season Dates"].length--;Budget["Mid Season Dates"].length--;Budget["Peak Season Dates"].length--;Budget["Molokai Season Dates"].length--;SportsLuxuryCars.length--;}
function setVisibility(TheLink,sectionName){var Section=document.getElementById(sectionName);var linkName=TheLink.innerHTML;if(linkName=="Show Car Rental Special Fees, Terms &amp; Conditions"){Section.className="on fSize10";TheLink.innerHTML="Hide Car Rental Special Fees, Terms &amp; Conditions";var toolTip="Hide Fees, Terms & Conditions...";TheLink.title=toolTip;self.status=toolTip;}
else{Section.className="off fSize10";TheLink.innerHTML="Show Car Rental Special Fees, Terms &amp; Conditions";var toolTip="Show Fees, Terms & Conditions...";TheLink.title=toolTip;self.status=toolTip;}}
function highlightRow(Link,on){var TD=Link.parentNode.parentNode;while(TD){if(TD.firstChild.tagName=="DIV"){if(on){TD.firstChild.style.backgroundColor="rgb( 49,77,231 )";TD.firstChild.style.color="rgb( 255,255,255 )";} else{TD.firstChild.style.backgroundColor="rgb( 0,0,204 )";TD.firstChild.style.color="rgb( 255,255,204 )";}}
TD=TD.nextSibling;}}
function showModels(Link,carClass,carModels,carCompany){var Console=document.getElementById(carCompany+carClass);var html="";if(!Console.innerHTML){var CarModels=carModels.split(",");html="<DIV CLASS='fSize8'>";for(member in CarModels)html+="• "+CarModels[member]+"<BR>";html+="</DIV><BR STYLE='line-height:4px;'>";Link.title=this.settings.titleOn;}
else
Link.title=this.settings.titleOff;Console.innerHTML=html;Link.blur();window.focus();}
function drawSportsLuxuryRows(){var html="";for(var i=0;i<SportsLuxuryCars.length/4;i++){html+="<TR CLASS='fSize10' VALIGN=top>";for(var k=0;k<4;k++){html+="<TD ALIGN=right CLASS='normBold'>";html+=(SportsLuxuryCars[i*4+k])?SportsLuxuryCars[i*4+k][0].cleanIt()+":":"&nbsp;";html+="</TD><TD ALIGN=left><DIV STYLE='margin:0px 35px 0px 10px;'>";html+=(SportsLuxuryCars[i*4+k])?SportsLuxuryCars[i*4+k][1].cleanIt():"&nbsp;";html+="</DIV></TD>";}
html+="</TR><TR><TD COLSPAN=8><DIV STYLE='line-height:4px;'> &nbsp;</DIV></TD></TR>";}
document.write(html);}
function drawAvisRows(carClass){var html="<TR CLASS='fSize10' ALIGN=center VALIGN=top><TD CLASS='bordR' ALIGN='left' WIDTH=130>";var models=Avis[carClass].models;html+="<DIV CLASS='carLink'>&nbsp;<A HREF='javascript:void( 0 );' onMouseover='Cars.highlightRow( this, 1 ); self.status=\""+models+"\"; return true;' onMouseout='Cars.highlightRow( this, 0 ); self.status=\"\"; return true;' onClick='if( FF ) Cars.highlightRow( this, 0 ); Cars.showModels( this, \""+carClass+"\", \""+models+"\", \"Avis\" ); return true;' TITLE='"+Cars.settings.titleOff+"' CLASS='carLink'>";html+=""+carClass.cleanIt()+"";html+="</A></DIV>";html+="<SPAN ID='Avis"+carClass+"'></SPAN>";html+="</TD><TD><DIV>";html+=(Avis[carClass].loDaily)?Avis[carClass].loDaily.cleanIt():"&nbsp;";html+="</DIV></TD><TD CLASS='bordR'><DIV>";html+=(Avis[carClass].loWeekly)?Avis[carClass].loWeekly.cleanIt():"&nbsp;";html+="</DIV></TD><TD><DIV>";html+=(Avis[carClass].hiDaily)?Avis[carClass].hiDaily.cleanIt():"&nbsp;";html+="</DIV></TD><TD><DIV>";html+=Avis[carClass].hiWeekly.cleanIt()?Avis[carClass].hiWeekly.cleanIt():"&nbsp;";html+="</DIV></TD></TR>";document.write(html);}
function drawBudgetRows(carClass){var html="<TR CLASS='fSize10' ALIGN=center VALIGN=top><TD CLASS='bordR' ALIGN='left' WIDTH=140>";var models=Budget[carClass].models;html+="<DIV CLASS='carLink'>&nbsp;<A HREF='javascript:void( 0 );' onMouseover='Cars.highlightRow( this, 1 ); self.status=\""+models+"\"; return true;' onMouseout='Cars.highlightRow( this, 0 ); self.status=\"\"; return true;' onClick='if( FF ) Cars.highlightRow( this, 0 ); Cars.showModels( this, \""+carClass+"\", \""+models+"\", \"Budget\" );' TITLE='"+Cars.settings.titleOff+"'>";html+=carClass.cleanIt();html+="</A></DIV>";html+="<SPAN ID='Budget"+carClass+"'></SPAN>";html+="</TD><TD><DIV>";html+=(Budget[carClass].loDaily)?Budget[carClass].loDaily.cleanIt():"&nbsp;";html+="</DIV></TD><TD CLASS='bordR'><DIV>";html+=(Budget[carClass].loWeekly)?Budget[carClass].loWeekly.cleanIt():"&nbsp;";html+="</DIV></TD><TD CLASS='bordR'><DIV>";html+=(Budget[carClass].hiDaily)?Budget[carClass].hiDaily.cleanIt():"&nbsp;";html+="</DIV></TD><TD CLASS='bordR'><DIV>";html+=(Budget[carClass].hiWeekly)?Budget[carClass].hiWeekly.cleanIt():"&nbsp;";html+="</DIV></TD><TD><DIV>";html+=(Budget[carClass].molokaiDaily)?Budget[carClass].molokaiDaily.cleanIt():"&nbsp;";html+="</DIV></TD><TD><DIV>";html+=(Budget[carClass].molokaiWeekly)?Budget[carClass].molokaiWeekly.cleanIt():"&nbsp;";html+="</DIV></TD></TR>";document.write(html);}
function drawHertzRows(carClass){var html="<TR CLASS='fSize10' VALIGN=top><TD ALIGN=right CLASS='normBold'><DIV>"+carClass.cleanIt()+":</DIV></TD><TD ALIGN=left><DIV STYLE='margin-left:10px;'>";html+=(Hertz[carClass].models)?Hertz[carClass].models.cleanIt():"&nbsp;";html+="</DIV></TD></TR><TR><TD COLSPAN=2><DIV STYLE='line-height:4px;'> &nbsp;</DIV></TD></TR>";document.write(html);}}
function cPW(){var FileComponents=dataFile.split("-");var villaID=FileComponents[FileComponents.length-1].replace(/\.js$/, "" );
gVillaRecNum=-1;for(var i=0;i<Villas.length;i++){if(Villas[i]&&Villas[i][0]==villaID){gVillaRecNum=i;break;}}
if(gVillaRecNum>=0&&Villas[gVillaRecNum][15]){if(!cookiesOn){alert("Sorry, this property is password protected & you must enable cookies to access it.");return false;}
if(GetCookie("cPW"))return true;var pw=qStr.gV("pw");if(pw){if(pw==UltraPrivateVillasPW){SetCookie('cPW',1,null,"/");return true;}
else{alert("Sorry, the query string portion of your URL is incorrect:\n\""+qStr+"\"\n\n1) It is missing the password portion entirely or contains the wrong password.\n2) A property formatted query string will look like this:  \"data=????.js&pw=?????\"");return false;}}
else{alert("Sorry, you must provide a password (within the URL) to access this property.");return false;}}
return true;}
function cp(){var agentCookie=GetCookie("agentCookie");if(agentCookie){readP=1;if(agentCookie=="1-1")readP_Elev=1;}
var writeCookie=GetCookie("writeCookie");if(writeCookie)writeP=writeCookie;if(qStr){var user=qStr.gV("user");var pw=qStr.gV("pw");if(qStr.gV("iam")=="agent"){if(qStr.gV("pw")!=CalendarPW&&qStr.gV("pw")!=CalendarPW+"_admin"){var userPW=(!agentCookie)?prompt("Please enter your password",""):"";if(userPW){if(userPW==CalendarPW){readP=1;readP_Elev=0;staffUser=true;publicUser=false;alert("Aloha, you have successfully logged-in with \"read-all\" access.\n\nClick on individual bookings for reservation specific details such as actual dates, guest name, notes & more...");SetCookie("agentCookie","1-0",null,"/");SetCookie('cPW',1,null,"/");SetCookie("PrivateListingsPW",PrivateListingsPW,null,'/');}
else if(userPW==CalendarPW+"_admin"){readP=1;readP_Elev=1;staffUser=true;publicUser=false;alert("Aloha, you have successfully logged-in with \"read-all\" elevated access.\n\nClick on individual bookings for reservation specific details such as actual dates, guest name, notes & more...");SetCookie("agentCookie","1-1",null,"/");SetCookie('cPW',1,null,"/");SetCookie("PrivateListingsPW",PrivateListingsPW,null,'/');}
else{alert("Sorry, you have entered an incorrect password");DeleteCookie("agentCookie");DeleteCookie("cPW");DeleteCookie("PrivateListingsPW");}}}
else if(qStr.gV("pw")==CalendarPW){readP=1;readP_Elev=0;staffUser=true;publicUser=false;SetCookie("agentCookie","1-0",null,"/");SetCookie("cPW",1,null,"/");SetCookie("PrivateListingsPW",PrivateListingsPW,null,"/");}
else if(qStr.gV("pw")==CalendarPW+"_admin"){readP=1;readP_Elev=1;staffUser=true;publicUser=false;SetCookie("agentCookie","1-1",null,"/");SetCookie("cPW",1,null,"/");SetCookie("PrivateListingsPW",PrivateListingsPW,null,"/");}}}}
function RentalLibrary(){this.Msg=new Array();this.Msg.ckIn="Check-in Date (MM/DD/YY)";this.Msg.ckOut="Check-out Date (MM/DD/YY)";this.Msg.nOcc="Number Occupants: Enter number only";this.calculateRent=calculateRent;this.getDayOfWeek=getDayOfWeek;this.gMN=gMN;function calculateRent(){}
function getDayOfWeek(index,nChars){var arrWeekDay=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"];var theDay=arrWeekDay[index];return(nChars)?theDay.substring(0,nChars):theDay;}
function gMN(index,fullName){var arrMonth=["January","February","March","April","May","June","July","August","September","October","November","December"];var month=arrMonth[index-1];return(fullName)?month:month.substring(0,3);}}
RL=new RentalLibrary();function initFactSheetData(){function subReportInheritanceErr(inheritNum,vName){if(!gErrReported){switch(inheritNum){case 0:reportError("Data Inheritance Error","An inherit key of 0, n, or no was set (meaning no inheritance) for Villa."+vName+" but the new value for this field was mistakenly left blank.");break;case 1:reportError("Data Inheritance Error","An inherit key of 1, y, or yes was set (meaning inherit verbatim) for Villa."+vName+" but you have also set a value for this field. Please remove this value OR reset the inherit key number.");break;case 2:reportError("Data Inheritance Error","An inherit key of 2, a, or append was set (meaning inheritance & append) for Villa."+vName+" but the new value (to be appended) for this field was mistakenly left blank.");break;}}
gErrReported=true;}
function subReportInheritanceNumErr(inheritNum,vName){if(!gErrReported)reportError("Fact Sheet Data Switch/Case Error",inheritNum+" is an invalid Inherit Number for Villa."+vName+" (number must be 0, 1 or 2)");gErrReported=true;}
function subGetSetting(abbrev,id){if(abbrev.indexOf(" ")==-1&&typeof eval("window.Setting."+abbrev)=="string")return eval("window.Setting."+abbrev);else{if(!gErrReported)reportError("Data Fact Sheet Setting Error","Cannot find a match for the setting \""+abbrev+"\" in the fact sheet data file.");gErrReported=true;}}
function subGetIsland(abbrev,id){if(abbrev.indexOf(" ")==-1&&typeof eval("window.Island."+abbrev)=="string")return eval("window.Island."+abbrev);else{if(!gErrReported)reportError("Data Fact Sheet Island Error","Cannot find a match for the Island \""+abbrev+"\" in the fact sheet data file.");gErrReported=true;}}
try{if(window.Villa){for(var i=0;i<Villas.length;i++){if(Villas[i][0]==Villa.ID){gVillaRecNum=i;break;}}
if(gVillaRecNum==-1)reportError("Villa Data Error","ERROR: Cannot find a match in listings.js for a Villa referenced by \""+Villa.ID+"\" in the fact sheet file.");for(var i in Villa){if(typeof Villa[i]=="string")Villa[i]=Villa[i].cleanIt();else if(typeof Villa[i]=="object"&&typeof Villa[i][1]=="string"){var inheritNum=Villa[i][0];if(i=="Name"){switch(inheritNum){case 0:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villa[i][1].cleanIt();break;case 1:if(Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villas[gVillaRecNum][1];break;case 2:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villas[gVillaRecNum][1]+" "+Villa[i][1].cleanIt();break;default:subReportInheritanceNumErr(inheritNum,i);}}
else if(i=="Setting"){switch(inheritNum){case 0:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villa[i][1].cleanIt();break;case 1:if(Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=subGetSetting(Villas[gVillaRecNum][11]);break;case 2:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=subGetSetting(Villas[gVillaRecNum][11])+" "+Villa[i][1].cleanIt();break;default:subReportInheritanceNumErr(inheritNum,i);}}
else if(i=="Loc"){switch(inheritNum){case 0:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villa[i][1].cleanIt();break;case 1:if(Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villas[gVillaRecNum][2];break;case 2:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villas[gVillaRecNum][2]+" "+Villa[i][1].cleanIt();break;default:subReportInheritanceNumErr(inheritNum,i);}}
else if(i=="Island"){switch(inheritNum){case 0:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villa[i][1].cleanIt();break;case 1:if(Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=subGetIsland(Villas[gVillaRecNum][3]);break;case 2:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=subGetIsland(Villas[gVillaRecNum][3])+" "+Villa[i][1].cleanIt();break;default:subReportInheritanceNumErr(inheritNum,i);}}
else if(i=="Bdrm"){var nBdrms=(Villas[gVillaRecNum][4][0]==Villas[gVillaRecNum][4][1])?Villas[gVillaRecNum][4][0]:Villas[gVillaRecNum][4][0]+" - "+Villas[gVillaRecNum][4][1];switch(inheritNum){case 0:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villa[i][1].cleanIt();break;case 1:if(Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=nBdrms;break;case 2:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=nBdrms+" "+Villa[i][1].cleanIt();break;default:subReportInheritanceNumErr(inheritNum,i);}}
else if(i=="Bath"){var nBaths=(Villas[gVillaRecNum][5][0]==Villas[gVillaRecNum][5][1])?Villas[gVillaRecNum][5][0]:Villas[gVillaRecNum][5][0]+" - "+Villas[gVillaRecNum][5][1];switch(inheritNum){case 0:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villa[i][1].cleanIt();break;case 1:if(Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=nBaths;break;case 2:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=nBaths+" "+Villa[i][1].cleanIt();break;default:subReportInheritanceNumErr(inheritNum,i);}}
else if(i=="Rate"){var rateOut="";var Rates=Villas[gVillaRecNum][9];if(typeof Rates[0]=="number")rateOut=(Rates[0]==Rates[1])?"$"+Rates[0]:"$"+Rates[0]+" to $"+Rates[1];else{for(var k=0;k<Rates.length-2;k++)rateOut+="<div class='rlRate'>$"+Rates[k][0]+": "+RL.gMN(Rates[k][1],0)+" "+((Rates[k][2]<10)?"0"+Rates[k][2]:Rates[k][2])+", "+(2000+Rates[k][3])+" - "+RL.gMN(Rates[k+1][1],0)+" "+((Rates[k+1][2]<10)?"0"+Rates[k+1][2]:Rates[k+1][2])+", "+(2000+Rates[k+1][3])+"</div>";}
switch(inheritNum){case 0:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villa[i][1].cleanIt();break;case 1:if(Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=rateOut;break;case 2:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=rateOut+" "+Villa[i][1].cleanIt();break;default:subReportInheritanceNumErr(inheritNum,i);}}
else if(i=="MaxOcc"){var maxOcc=(Villas[gVillaRecNum][10][0]==Villas[gVillaRecNum][10][1])?Villas[gVillaRecNum][10][0]:Villas[gVillaRecNum][10][0]+" - "+Villas[gVillaRecNum][10][1];switch(inheritNum){case 0:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villa[i][1].cleanIt();break;case 1:if(Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=maxOcc;break;case 2:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=maxOcc+" "+Villa[i][1].cleanIt();break;default:subReportInheritanceNumErr(inheritNum,i);}}
else if(i=="Pool"){var pool=(Villas[gVillaRecNum][6])?"Yes":"No";switch(inheritNum){case 0:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=Villa[i][1].cleanIt();break;case 1:if(Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=pool;break;case 2:if(!Villa[i][1])subReportInheritanceErr(inheritNum,i);Villa[i][1]=pool+" "+Villa[i][1].cleanIt();break;default:subReportInheritanceNumErr(inheritNum,i);}}}}}}
catch(Err){var eMsg="ERROR: Data in fact sheet data file is malformed (bad syntax). Villa hash table cannot be initialized.\n\n";for(member in Err)eMsg+=member+": "+Err[member]+"\n";if(!gErrReported)reportError("Data Listings Syntax Error",eMsg);gErrReported=true;}}
