function uistatsunload()
{
    if (typeof adt != 'undefined' && typeof sendAdt == 'function') {
        var now = new Date();
        var val = "unload=" + now.getTime();
        adt.push(val);
        sendAdt();
    }
}


function commonErrors()
{

}


function addMatchedProvider(name, count)
{
    if (matchedProviders[name] != null) {
        matchedProviders[name] += count;
    } else {
         matchedProviders[name] = count;
         document.getElementById('matchedProviders').innerHTML +=  name + '<BR/>';
    }
}

function force()
{
    url="../";
    window.location.replace(url)
}

function initAdt(extraArgs)
{
}

function addAdt(desc)
{
    /*try {
       if (desc.indexOf('filtertime') < 0 &&
           desc.indexOf('pagefwd') < 0 &&
           desc.indexOf('pageback') < 0)
       {
         _hbSet('n', "/filter/" + desc);
         _hbSend();
      }
    } catch (ignored) {
    }*/
}

function sendAdt()
{
}

function research()
{
        //addAdt("startsearchover");
        
        //window.location.replace("../");
        document.researchForm.submit();
}
       
function getJavascriptVersion()
{
    return "/v103";
}

function unloadPage()
{
    if (typeof uistatsunload == "function") uistatsunload();
    if (typeof _unloadPageMap == "function") _unloadPageMap();
}

function detailSaveCallback() 
{
    this.onLoad = function(xmlobj) {
        // only if req shows "loaded"
        if (xmlobj.xmlhttp.readyState == 4) {
            // only if "OK"
            if (xmlobj.xmlhttp.status == 200) {
                var results = xmlobj.getTags("results");
                var htmlText = "";
                var scriptText = "";

                            htmlText = xmlobj.getTagText(results[0], "content", 0);
                scriptText = xmlobj.getTagText(results[0], "javascript", 0);
                            savesuccess(xmlobj.uservars);
                eval(scriptText);
             } else {
                alert("There was a problem saving the result:\n" + xmlobj.xmlhttp.statusText);
             }
        } else {
            alert("There was a problem saving the result (bad state): " + xmlobj.xmlhttp.readyState);
        }
    }
    this.onError = function(status,statusText) {
       alert("There was a problem saving the result.");
    }
}

        function hotelDetailsCallback() 
        {
        this.onLoad = function(xmlobj) {
            // only if req shows "loaded"
            if (xmlobj.xmlhttp.readyState == 4) {
                // only if "OK"
                if (xmlobj.xmlhttp.status == 200) {
                    var results = xmlobj.getTags("results");
                    var htmlText = "";
                    var scriptText = "";
                                    htmlText = xmlobj.getTagText(results[0], "content", 0);
                    scriptText = xmlobj.getTagText(results[0], "javascript", 0);
                                    showdetails(xmlobj.uservars, htmlText);
                    eval(scriptText);
                 } else {
                    alert("There was a problem getting the details:\n" + xmlobj.xmlhttp.statusText);
                 }
            } else {
                alert("bad state " + xmlobj.xmlhttp.readyState);
            }
        }
        this.onError = function(status,statusText) {
           alert("Sorry, we could not retrieve the hotel details.");
        }
    }

    function hoteldetail(idx, resultid)
    {   
        var therow = document.getElementById('hdetailsdiv' + idx);
        if (therow.style.display=="none") {           
            var html = "<table border='0' cellpadding='0' cellspacing='0'  width='100%'>";
            
            html += "<tr>";
            //html += "<td><img alt='no image' src='f"+ _r[idx]._image_url+"' border='0' /></td>";
            /*i = 0;
            for (i=0; i<_r[idx]._desc.length-1; i++){
                if (i > 191 && _r[idx]._desc.charAt(i) == ' ' && _r[idx]._desc.charAt(i+1) != "/" && _r[idx]._desc.charAt(i+1) != ">" && _r[idx]._desc.charAt(i+1) != "<") {
                        i = i;
                        break;
                }
            }*/
            html += "<td><div class='addressline'>"+ _r[idx]._desc+"</div></td>";
            html += "</tr>";
            html += "<tr><td><div id='availablecalendar"+idx+"' style='display:none'></div></td></tr>";
            html += "<tr><td style='text-align: right'><a id='availablecalendarlink" + idx + "' class='padded subtlelink' href=\"javascript:availablecalendar("+idx+","+resultid+")\">availability calendar</a></td.</tr>";
            
            //Ratings
            if (_r[idx]._ratings) {
                html += "<tr>";
                    html += "<td colspan='2' nowrap='true'><b>Ratings:</b><p>";
                    html += "<table border='0' cellpadding='0' cellspacing='0' width='50%' bgColor='#FEF2D8'>";
                    for (id in _r[idx]._ratings) {
                        rating = _r[idx]._ratings[id];
                        var rating_value = roundTo(((rating['value']/rating['base'])*100), 5, true);
                        if (isNaN(rating_value)) continue;
                        html += "<tr><td nowrap='true' valign='middle'>"+rating['description']+"</td>";
                        
                        //Rating diagramattic
                        html += "<td valign='middle'><table border='0' cellpadding='0' cellspacing='0' width='100px' style='height: 3px !important;'><tr style='height: 3px !important;'>";
                        html += "<td valign='middle' bgColor='#FE0000' style='background-image:url(../img/diagramattic_red_bg.png); background-repeat: x-repeat; background-position: top left' width='"+rating_value+"'></td><td valign='middle' style='background-image:url(../img/diagramattic_dark_red_bg.png); background-repeat: x-repeat; background-position: top left' bgColor='#740000' width='"+(100 - rating_value)+"'></td>";
                        html += "</tr></table></td>";
                        
                        html += "<td valign='middle' align='right'><b>"+rating_value+"%</b></td><tr>";
                    }
                    html += "</table>";
                    html += "</td>";
                    html += "</tr>";
                }
            
            html += "</table>";
            showdetails(idx, html);
        } else {
            hidedetails(idx);
        }
    }
    
    function availablecalendar(idx, id)
    {
        var thediv = document.getElementById('availablecalendar' + idx);
        //if (thediv.style.display == "none") {
                        if (_r[idx]._selecthtml == "") {
                        document.getElementById('availablecalendarlink' + idx).innerHTML = "load...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;";
                        getHotelSelect(id, idx);
                } else {
                        showcalendar(idx);
                }
        //} else {
        //    hidecalendar(idx);
        //}
          
    }
        
    function showcalendar(idx)
    {
        var thediv = document.getElementById('availablecalendar' + idx);
        //var thelink = document.getElementById('availablecalendarlink' + idx);

        //thediv.style.display="block";
        thediv.innerHTML = _r[idx]._selecthtml;
        //thelink.innerHTML = 'hide availability calendar';
    }

    function hidecalendar(idx) 
    {
        var thediv = document.getElementById('availablecalendar' + idx);
        var thelink = document.getElementById('availablecalendarlink' + idx);

        thediv.style.display="none";
        thediv.innerHTML = "";
        thelink.innerHTML = 'show availability calendar';
    }

    function recordResultsPage(searchid, reason, count, displayedResults)
    {
        var url = "/s/sparkle?action=hotelresultspg&seq=" + _screenseq;
        //url += "&searchid=" + searchid;
        url += "&cause=" + reason;
        url += "&count=" + count;
        url += "&hresults=" + escape(displayedResults);
        url += "&time=" + new Date().getTime(); // cache buster timestamp

        var client = new R9HTTPXml();
        client.init(url, null, null);
        try {
            client.asyncGET(null);
        } catch (ignored) {
        }
        client = null;
        _screenseq += 1;
    }

    function resultLogEntry(result) 
    {
        var entry = result._id + '|' + result._price;
              entry += ';';
        return entry;
    }

    function showdetails(idx, htmlText)
    {
        var shrow  = document.getElementById('short_details' + idx);
        //var therow = document.getElementById('hdetails' + idx);
        var thediv = document.getElementById('hdetailsdiv' + idx);
        var thelink = document.getElementById('hoteldetailink' + idx);
        /*if (_isIE) {
            thediv.style.display="block";
        } else {
            thediv.style.display="table-row";
        }*/
        thediv.style.display="block";
        
        shrow.style.display = 'none';
        thediv.innerHTML = htmlText;
        thelink.innerHTML = 'hide information';
    }

    function hidedetails(idx) 
    {
        var shrow  = document.getElementById('short_details' + idx);
        //var therow = document.getElementById('hdetails' + idx);
        var thelink = document.getElementById('hoteldetailink' + idx);
        var thediv = document.getElementById('hdetailsdiv' + idx);
        /*if (_isIE) {
            shrow.style.display="block";
        } else {
            shrow.style.display="table-row";
        }*/
        shrow.style.display="block";
        thediv.style.display="none";
        thelink.innerHTML = 'more informaton';
    }

    function savesuccess(idx)
    {
        _r[idx]._saved = true;
        var span  = document.getElementById('hotelsave' + idx);
        if (span != null) {
            span.innerHTML = 'Saved to "Search History" under your profile';
        }
    }


    function hotelsave(idx, resultid)
    {
                if (window.confirm('Sorry, you need to have a HostelsClub account to save this hotel, would you like to create one or sign in now?')) {
                        var newwin = window.open('https://secure.domain.com/k/ident/register');
                if (newwin == null) {
                    alert('Please make sure you are not blocking popups.');
                }
        }
    }

    function customlocfocus()
    {
        initSmartBox(document.resultUI.customlocation, document.resultUI.customhint, "hotel", 30, 175, null);
        setSbCountryCode("US");
    }

    function amenityicon(idx, code)
    {
        if (! _r[idx]._a[code]) return "-off";
        return "";
    }

    function amenitytitle(idx, code) 
    {
        if (! _r[idx]._a[code]) return "No ";
        return "";
    }    

    function getbooklink(idx, providernum, linktext, linkclass)
    {
         var resultInfo = _r[idx]._linkinfo;
         var dealMsg = "We are now taking you to " + _r[idx]._p[providernum]._psite +  " to book your hotel.";
         var asbook = " onclick=\"javascript: itemClicked('" + idx + "', '" + dealMsg + "');\"";

         var link = "<a class='" + linkclass + "' target='bookit" + idx + "' " + asbook + " href='" +
                            _r[idx]._p[providernum]._bookurl + resultInfo.byrank + resultInfo.clickpos + "&sr=1'>" + linktext + "</a>"

         return link;

    }

    function getactionlinks(idx, ismap)
    {
        var resultInfo = _r[idx]._linkinfo;
        var alllinks = '';
        var emailresultlink = "";
        var html = "";
        
            if (_r[idx]._i.length > 0 || (_r[idx]._url != null && _r[idx]._url.length > 0)) {
                //html += "<div class='moreinfo_links' style='white-space:nowrap'>more info: "
                html += "<div class='moreinfo_links' style='white-space:nowrap'>book now: "

               /* for (var i=0; i<_r[idx]._i.length;i++) {
                    html += "<a target='moreinfo' href='" + _r[idx]._i[i]._url + "'>" + _r[idx]._i[i]._name + "</a>&nbsp;&nbsp;";
                }*/

                if (_r[idx]._url != null && _r[idx]._url.length > 0) {
                    //html += "<a target='moreinfo' href='" +_r[idx]._url + "'>" + simpleurl(_r[idx]._url) + "</a>&nbsp;&nbsp;";
                    html += "<a target='_blank' href='" +_r[idx]._url + "'><nobr>" + _r[idx]._name + "</nobr></a>&nbsp;&nbsp;";
                }

                html += "</div>";
             }

                return html;
    }

    function makeARow(i, iconindex, _resultDetails, isPinned)
    {
	var content = "<!--HOSTEL WRAP--> \n";
	content += "<div class=\"hostelWrap\"> \n \n";
	content += "<div class=\"hostelTitle\"> \n";
	content += "<!--HOSTEL TITLE--> \n";
	content += "<h3><a href=\""+ _r[i].link +"\">" + _r[i]._name + "</a></h3> \n ";
	content += "</div> \n \n";
	content += "<!--HOSTEL TITLE ENDS --> \n";
	content += "<!--HOSTEL PRICES--> \n";
	content += "<div class=\"hostelPrices\"> \n \n";
	content += "<div class=\"hostelPrices2\"> \n";
	content += "shared <span> \n";
	if (_r[i]._sharedPrice != '')
		content += _r[i]._sharedPrice + " \n";
	else
		content += "N/A \n";
	content += "</span> \n";
	content += "</div> \n \n";

	content += "<div class=\"hostelPrices2 private\"> \n";
	content += "private <span> \n";
	if (_r[i]._privatePrice != '')
		content += _r[i]._privatePrice + " \n";
	else
		content += "N/A \n";
	content += "</span> \n";
	content += "</div> \n \n";

	content += "<div class=\"hostelPrices2 rating\"> \n";
	content += "<img src=\"/img/ratingThumb.gif\" align=\"absmiddle\">" + _r[i]._rtg + "% \n";
	content += "</div> \n";
	content += "</div> \n \n";
	content += "<!-- HOSTEL PRICES ENDS--> \n";
	content += "<div class=\"clear\"><!----></div> \n";

	content += "<!-- HOSTEL IMAGE--> \n";
	content += "<div class=\"hostelIMG\"> \n";
	content += "<a href=\"" + _r[i].link + "\"><img alt=\"" + _r[i]._name + "\" src=\"http://" + _r[i]._image_url + "\" border=0></a> \n";
	getHotelSelect(_r[i]._id, i);
	content += "<div id='availablecalendar"+i+"'></div>";
	content += "</div> \n \n";
	content += "<!-- HOSTEL IMAGE ENDS--> \n";

	content += "<!-- HOSTEL TEXT--> \n";
	content += "<div class=\"hostelTXT\"> \n";
	content += "<span class=\"googleIcon\"><a href=\"javascript: centeronhotel(" + i + ", " + iconindex + ")\"> \n";
	content += "<img src=\"/img/mapicons/iconr" + (iconindex - 0) + ".png\" border=0></a> \n";
	content += "</span> \n";
	content += "<p>Type: <strong>" + _r[i]._accomm_type + "</strong></p> \n";

	//content += "<p>" + _r[i]._addressLine + "</p> \n";
	content += "<p class=\"hostelAddress\"> \n" + _r[i]._desc.substring(0,150) + "... \n";
	content += "<a class=\"more\" href=\"" + _r[i].link + "\">more information</a> &raquo;</p> \n";
	content += "</div> \n \n";
	content += "<!-- HOSTEL TEXT ENDS--> \n";
	content += "<div class=\"clear\"><!----></div> \n";

	content += "<!-- HOSTEL BOOKING TOOLS --> \n";
	content += "<div class=\"hostelBook\"> \n";
	content += "<p> \n";
	content += "<a href=\"" + _r[i].link + "\"><img alt=\"book now\" src=\"/img/btnBook.gif\" align=\"absmiddle\" border=0</a></p> \n";
//	content += "<a href=\"" + _r[i].link + "\">" + _r[i]._name + "</a></p> \n";
	content += "</div> \n";
	content += "<!-- HOSTEL BOOKING TOOLS ENDS--> \n";

	content += "</div> \n \n";
	content += "<!-- HOSTEL WRAP ENDS--> \n";
	
        return content;
    }

    function getPinHeader()
    {
        if (pinnedResultList.length == 0) {
             return "<tr><th id='pinnedheaderrow' class='nopin' colspan='7'>" +
                         "<span id='pinhelplink' class='actions'><a class='actionlink' href='javascript: addAdt(\"pinhelp0\");showFilterToolTip(" + (filterToolTips.length - 1) + ")'>What's this?</a>&nbsp;</span>" +
                         "<img src='../img/a-pinned-grey.gif'/> My Favorite Hotels <span>(" + pinnedResultList.length + ")</span></th></tr>";
        } else {
            return "<tr><th id='pinnedheaderrow' class='pin' colspan='7'>" +
                     "<span id='pinhelplink' class='actions'>&nbsp;<a class='actionlink' href='javascript: addAdt(\"pinhelp\");showFilterToolTip(" + (filterToolTips.length - 1) + ")'>?</a>&nbsp;</span>" +
                     "<span class='actions'><a class='actionlink' href='javascript: unpinAll()'>unpin all</a>&nbsp;</span>" +  "<span class='actions'><input " + ((document.resultUI.onlymapfav.value == "Y") ? "checked='checked'" : "") + "onclick='onlyShowFavorites()' id='onlymapfavorites' name='mapfavorites' type='checkbox'><label for='onlymapfavorites'>Map favorites only&nbsp;&nbsp;</label></span>" +                      "My Favorite Hotels <span>(" + pinnedResultList.length + ")</span></th></tr>";
        }
    }

    function maketable(reason)
    {
	var lowprice=99999.00, results;
	
        var content = new Array();
        var pnum =  _currentPageNum + 1;
        var byrank = '&ro=false';
        var max = parseInt(_numrows);        
        var searchid = '111111111111111';
        var resultslog = "";
        var logcount = 0;

	var serverurl = "http://www.domain.com";
        var detailurl = serverurl;

	if (pinnedResultList.length > 0) {
            content[content.length] = getPinHeader();
            content[content.length] = blankrow;
            if (displayPinnedItems) {
                for (var i=0; i<pinnedResultList.length; i++)
                {
                                      var _resultDetails = new Object();
                   _r[pinnedResultList[i]]._linkinfo = _resultDetails;
                   _resultDetails.idx = i;
                   _resultDetails.resultnum = i;
                   _resultDetails.pnum = pnum;
                   _resultDetails.byrank = byrank;
                   _resultDetails.clickpos = '&cp=' + (i + 1) + '-' + _filtered.length + '-' + _r.length;
                   _resultDetails.detailurl = detailurl;
                  content[content.length] = makeARow(pinnedResultList[i], i+1, _resultDetails, true);
//                  content[content.length] = spacerrow;
                                  resultslog += resultLogEntry(_r[pinnedResultList[i]]);
                  logcount += 1;
                                }
                content[content.length] = blankrow;
                content[content.length] = blankrow;
                content[content.length] = blankrow;
            }
        }



               /* 
                var header = '<tr>' +
                        '<th nowrap="nowrap" colspan="2">Image</a></th>'  +
                        '<th style="padding: 0" width="10%"></th>' +
                    '<th id="hdr' + _namesortid + '" class="hnam" nowrap="nowrap" >' + _sortname + 'Hotel Name</a><span class="sortarrow" id="' + _namesortid + '"></span>' + hideshow + '</th>' +
                    '<th width="10%" nowrap="nowrap" id="hdr' + _sharedsortid + '">' + _sortshared + 'Price Shared</a><span class="sortarrow" id="' + _sharedsortid + '"></span></th>'  +
                    '<th width="10%" nowrap="nowrap" id="hdr' + _privatesortid + '">' + _sortprivate + 'Price Private</a><span class="sortarrow" id="' + _privatesortid + '"></span></th>'  +
                    '<th width="10%" style="text-align: center">Accommodation type</a></th>' +
                    '<th colspan="2" id="hdr' + _distsortid + '" class="hdist" nowrap="nowrap" style="text-align: right">' + _sortdistance + 'Rating</a><span class="sortarrow" id="' + _distsortid + '">&nbsp;<img style="visibility: hidden" src="'+www_root+'/img/sort_up.gif"/></span></th></tr>';
		*/
	var header = '<!-- TITLE BAR FOR RESULTS -->' + 
			'<div class=\"resTitleBar\">' +
				  '<div class=\"resTitle\">Property Name</div>' + 
				  
				  '<div class=\"resTitleDiv resTitShared\">' +  _sortshared + '<img src="/img/titArrows.gif" alt="sort by" align="absmiddle" border="0"></a>Price (Shared)                                 </div>' +

				'	<div class=\"resTitleDiv resTitPriv\">' + _sortprivate +  
				'<img src="/img/titArrows.gif" alt="sort by" align="absmiddle" border="0" height="25" width="12"></a>Price (Private)					</div>' + 
				'	<div class=\"resTitleDiv resTitRating\">' + _sortrating + 
				'<img src="/img/titArrows.gif" alt="sort by" align="absmiddle" border="0" height="25" width="12"></a>Rating					</div>' + 
				'</div>' +
			'<!-- TITLE BAR FOR RESULTS ENDS -->';

        content[content.length] =  header +  getTopMessageRow(17, 'fc0');


        updateSearchFilter(_filtered.length);

        if (_lastsort == sortrank) {
            byrank = '&ro=true';
         }
         byrank += '&pg=' + pnum;

        var foundAPrice = false;

        var shown = 0;
        var j;
        if (_filtered.length >= 1) {
            for (j = 0; j < _filtered.length; j++) {
                var i = _filtered[j];
                                if (shown >= max) {
                    break;
                }
                
                if (isPinned(i)) {
                    continue;
                }
                
                if (_r[i]._vs < 0) {
                    continue;
                }
                
                if (_r[i]._rlot != '') {
                    foundAPrice = true;
                }
                
                var _resultDetails = new Object();
                _r[i]._linkinfo = _resultDetails;
                _resultDetails.idx = i;
                _resultDetails.resultnum = j;
                _resultDetails.pnum = pnum;
                _resultDetails.byrank = byrank;
                _resultDetails.clickpos = '&cp=' + (j+1) + '-' + _filtered.length + '-' + _r.length;
                _resultDetails.detailurl = detailurl;

                if (_r[i]._bookit != "noavail") {
                    if (_r[i]._price < lowprice) lowprice = _r[i]._price;
                }

                if (j >= pageOffsets[_currentPageNum]) {
                    shown++;
                    content[content.length] = makeARow(i, shown, _resultDetails, false);
//                    content[content.length] = spacerrow;
                                      resultslog += resultLogEntry(_r[i]);
                    logcount += 1;
                }
            }
        }
        
        // Set page num for next page
        if (j < _filtered.length) {
            pageOffsets[_currentPageNum + 1] = j;
         }

        
        if (shown == 0) {

        	lowprice = 0.00;
            var total = _r.length;
            if (total == 0) {
                content[content.length] = '<tr><td colspan="7" class="filteredout"><span class="noresultshdr">We did not find any properties to match your search<br><a href="javascript: document.searchUI.submit(); showmessage(getUpdateMessage(\'Please, wait...\'));">Search Again</a></span></td></tr><tr><td colspan="7" class="filteredout">';
            } else {
                content[content.length] = '<tr><td colspan="7" class="filteredout"><span class="noresultshdr">' + replaceArgs('Oops, your choices have hidden all {0} hotels!', _r.length) + '</span></td></tr><tr><td colspan="7" class="filteredout">';
                //content[content.length] = 'Adjust the lefthand controls (<a href="javascript: showMainFilterToolTip()">learn how</a>):<br/>';
                content[content.length] = 'Adjust the lefthand controls:<br/>';
            }            
           
            var filterReasons = getFilteredOutReasons().reasons;
            var sectionArray = new Array();

            for (var i=0; i< filterReasons.length; i++) {
                var reason = filterReasons[i];
                if (reason.sectionname != null) {
                    sectionArray.push(reason.sectionname);
                }
                if ((i == filterReasons.length - 1) && (filterReasons.length > 1)) {
                    content[content.length] = " and/or ";
                } else if (i > 0) {
                    content[content.length] = ", ";
                }
                content[content.length] = "<b>" + reason.heading + "</b>";

            }

            setFilterSectionColor(getFilterSectionsArray(), '#dedede');
            setFilterSectionColor(sectionArray, '#ffffde');
            content[content.length] = (total ? " to show hotels." : "");
            
            if (total == 0) {
                content[content.length] = '</td></tr><tr><td colspan="7" class="filteredout"><a class="actionlink" href="javascript: window.history.back();">Back</a>';
            } else {
                content[content.length] = '</td></tr><tr><td colspan="7" class="filteredout"><a class="actionlink" href="javascript: showLowest(1)">' + replaceArgs('Show all {0} hotels', _r.length) + '</a>';
            }
            
            content[content.length] = "</td></tr>";
            content[content.length] = '<tr><td class="resultblankrow" colspan="7">&nbsp;</td></tr>';

           // positionMap(false);
                           
            
        } else {
            setFilterSectionColor(getFilterSectionsArray(), '#dedede');
            if (! foundAPrice && document.getElementById('fs_outer_price') != null) {
                document.getElementById('fs_outer_price').style.display = 'none';
            } else {
                if (document.getElementById('fs_outer_price') != null) {
                        document.getElementById('fs_outer_price').style.display = 'block';
                }
            }
        }

              //recordResultsPage(searchid, reason, logcount, resultslog);
              results = "<table class='hotellist roundedcorners' width=520>" + content.join('') + "</table>";

        return results;        
    }

        
    function hr(idx, id, price, est, dist, name, desc, bookit, rtg, lon, lat, chain, pchain,alt, rlot,rhi,pt,nhbd,rank,mkt,phone,url,addressLine,sharedPrice,privatePrice, bookLink, accomm_type, image_url, link)
    {
        _r[idx] = new Object();
        _r[idx]._id=id;
        _r[idx]._price=price;
        _r[idx]._est=est;
        //_r[idx]._dist=dist;
        _r[idx]._name=name;
        _r[idx]._desc=desc;
        _r[idx]._bookit=bookit;
        _r[idx]._rtg=dist;
        //_r[idx]._rtg=rtg;
        _r[idx]._lon=lon;
        _r[idx]._lat=lat;
        _r[idx]._order=idx;
        _r[idx]._chain=chain;
        _r[idx]._pchain=pchain;
        _r[idx]._alt=alt;
        _r[idx]._rlot=rlot;
        _r[idx]._rhi=rhi;
        _r[idx]._vs=0;
        _r[idx]._pt=pt
        _r[idx]._nbhd=nhbd;
        _r[idx]._rank=rank;
        _r[idx]._mkt=mkt;
        _r[idx]._phone=phone;
        _r[idx]._url=url;
        _r[idx]._addressLine=addressLine;
        _r[idx]._sharedPrice = sharedPrice;
        _r[idx]._privatePrice = privatePrice;
        _r[idx]._bookLink = bookLink;
        _r[idx]._accomm_type = accomm_type;
        _r[idx]._image_url = (image_url ? image_url : "");
        _r[idx]._p = new Array();
        _r[idx]._a = new Object();
        _r[idx]._i = new Array();
        _r[idx]._ratings = new Array();
        _r[idx]._selecthtml = "";
        _r[idx].link = link;
    }

    function p(idx, price, url, site, code, type, direct,notaxesinc) {
        pvd = new Object();
        pvd._price = price; pvd._bookurl=url; pvd._psite =site;pvd._code=code;pvd._type=type;pvd._direct=direct;pvd._notaxes=notaxesinc;
        _r[idx]._p.push(pvd);
    }

    function info(idx, name, url) {
        var i = new Object();
        i._name = name; i._url=url;
        _r[idx]._i.push(i);
    }

        function am(idx, inet, fitness, pets, pool, restaurant, parking) {
        _r[idx]._a.internet =inet; _r[idx]._a.fitness=fitness; _r[idx]._a.pets =pets; _r[idx]._a.pool =pool; _r[idx]._a.restaurant =restaurant;_r[idx]._a.parking =parking;

    }
    
    function ratings(idx,i,rating_value, rating_base, rating_desc)
    {
        rating = new Array();
        rating['value'] = rating_value;
        rating['base'] = rating_base;
        rating['description'] = rating_desc;
        _r[idx]._ratings[i] = rating;
    }

    // Needed to set page when restoring
    function initialFunction()
    {
        calculateDistances();

        // Set correct pagestart if coming back through history
        if (document.getElementById('pagefirstrow') != null) {
           setTop(document.getElementById('pagefirstrow').value);
        }
    }

    function setHotelDisplayCookie()
    {
        /*var cookievalue = ((isMapSmall) ? '1' : '0') + ((showAddress) ? '1' : '0') + ((showAmenities) ? '1' : '0');
        SetCookie("p2.med.hr", cookievalue, 9999, ".domain.com");*/
    }

        function getPinSaveFields(idx)
    {
        return "type=H&itemid=" + escape(_r[idx]._id) + "&expires=&pos=" + (idx+1) + "&searchid=1111111111111";
    }
    
        function local_togglesearchbox()
        {
                positionMap(true);
        }
        
        function makeBookLink(HotelCode, Lang, Giorno, Mese, Anno, Notti, Currency, AffiliateID, SiteID)
        {       
                if (AffiliateID == null || AffiliateID == "" || !AffiliateID) {
                        AffiliateID = 337;
                }
                
                if (SiteID == null || SiteID == "" || !SiteID) {
                        SiteID = 275;
                }
                
                url = "http://www.hostelsclub.com/step02_str.php?aff_ID="+AffiliateID;
                //url = "http://www.hostelspoint.com/res/"+SiteID+"/step02_str.php?aff_ID="+AffiliateID;
                
                if (HotelCode) {
                        url += "&str="+HotelCode;
                }
                
                if (Lang) {
                        url += "&lang="+Lang;
                }
                
                if (Giorno) {
                        url += "&giorno="+Giorno;
                }
                
                if (Mese) {
                        url += "&mese="+Mese;
                }
                
                if (Anno) {
                        url += "&anno="+Anno;
                }
                
                if (Notti) {
                        url += "&notti="+Notti;
                }
                
                url += "&currency=1";
                
                return url;
        }
        
function startup()
{
        showmessage(getUpdateMessage("Updating results"));
    productstartup();
}

function checkin_date_changed()
{
        var departing = calendar.Date_getDateFromFieldPair('checkin_date_dom', 'checkin_date_my');
        var returning = calendar.Date_getDateFromFieldPair('checkout_date_dom', 'checkout_date_my');

        /*if (returning == null || departing > returning) {
                var returnDateParts = addDays(departing,3).split("/");
                document.hotels.checkout_date_dom.value = parseInt(returnDateParts[1], 10);
                selectByValue(document.hotels.checkout_date_my, '' + zeroPad(returnDateParts[0]) + returnDateParts[2]);
                calendar.setDayLabel("checkout_date_dom", "checkout_date_my");
        }*/
        var returnDateParts = addDays(departing,3).split("/");
        document.searchUI.checkout_date_dom.value = parseInt(returnDateParts[1], 10);
        selectByValue(document.searchUI.checkout_date_my, '' + zeroPad(returnDateParts[0]) + returnDateParts[2]);
        calendar.setDayLabel("checkout_date_dom", "checkout_date_my");
}

function getFirstDate()
{
        var date = calendar.Date_getDateFromFieldPair('checkin_date_dom', 'checkin_date_my');
        return date;
}

function PageUnload()
{
        //priceSlider = null;
        //priceSlider2 = null;
        unloadPage();
}

