﻿var WhatsNearbySearch = {
    mapObj: null,
    resultDiv: "resultList",
    sec: "",
    //url : "http://DOMAINNAME/ajax/_whatsnearby.aspx",

    init: function(map) {
        WhatsNearbySearch.mapObj = map;
    },

    search: function(secID, recordID, sec) {
        if (recordID == null) recordID = 0;
        if (secID == null) secID = 0;
        if (sec == null) sec = "";

        WhatsNearbySearch.sec = sec;

        WhatsNearbySearch.deleteResultsPushpins();

        LoadingMask.show();

        $.post("post.nyc", { _ns: "MapSearch", _a: 1, _m: "WhatsNearbySearch", sid: secID, rid: recordID, "sec": sec }, WhatsNearbySearch.resultHandler, "json");

        return false;
    },

    resultHandler: function(res) {
        var div = document.getElementById(WhatsNearbySearch.resultDiv);
        div.innerHTML = "";

        LoadingMask.hide();

        if (res == null && res.TotalCount == 0)
            return;

        // result list table top
        var resultsList = "<table class='findResult' border='0' cellpadding='0' cellspacing='0' width='100%'>";
        resultsList += "<tr valign='bottom'>";
        resultsList += "<td colspan='2'></td>";
        resultsList += "<td class='header'>Editor<br />Rating</td>";
        resultsList += "<td class='header'>User<br />Rating</td>";
        resultsList += "<td class='header' style='background:#dddddd'>Distance</td>";
        resultsList += "<td class='header2'>" + (WhatsNearbySearch.sec == "hot" ? "Rates" : "Featured") + "</td>";
        resultsList += "</tr>";

        resultsList += "<tr>";
        resultsList += "<td></td>";
        resultsList += "<td><img src='/image/spacer.gif' height='7px' /></td>";
        resultsList += "<td class='header'>&nbsp;</td>";
        resultsList += "<td class='header'>&nbsp;</td>";
        resultsList += "<td class='header'  style='background:#dddddd'>&nbsp;</td>";
        resultsList += "<td class='header2'>&nbsp;</td>";
        resultsList += "</tr>";
        resultsList += "<tr>";
        resultsList += "<td colspan='6' style='height:1px; background: #cccccc'></td>";
        resultsList += "</tr>";

        for (var i = 0; i < res.Records.length; i++) {
            var rec = res.Records[i];

            resultsList += "<tr>";
            resultsList += "<td></td>";
            resultsList += "<td><img src='/image/spacer.gif' height='5px' /></td>";
            resultsList += "<td class='header'>&nbsp;</td>";
            resultsList += "<td class='header'>&nbsp;</td>";
            resultsList += "<td class='header' style='background: #dddddd'>&nbsp;</td>";
            resultsList += "<td class='header2'>&nbsp;</td>";
            resultsList += "</tr>";

            resultsList += "<tr valign='top'>";
            resultsList += "<td class='rct'><br />" + (i + 1) + "</td>";
            // Main Item Box
            resultsList += "<td class='det'><br />"
            // generate some basic info with javascript if no ListItemHtml returned from server
                            + (rec.ListItemHtml != "" ? rec.ListItemHtml :
                                "<a class='" + (WhatsNearbySearch.sec == "hot" ? "hrn" : "rn") + "' href='" + rec.NycUrl + "'>" + rec.Name + "</a>"
                                + "<br /><img src='/image/spacer.gif' height='10px' /><br />"
                                + rec.Address.replace(/\n/g, '<br />') + "<br />"
                                + "<b>" + rec.Phone + "</b><br />"
                                + "<br /><img src='/image/spacer.gif' height='10px' /><br />")
                            + "</td>";
            // Editorial Rating
            resultsList += "<td class='header'><br />"
                            + (Math.floor(rec.ERating) > 0 ? "<a class='rating' href='" + rec.NycUrl + "'>"
                                + "<img src='/image/rating/r_" + Math.floor(rec.ERating) + ".gif' /><br />" + rec.ERating + "</a>"
                                : "Not<br />Rated")
                            + "</td>";
            // User Rating
            resultsList += "<td class='header'><br />"
                            + (Math.floor(rec.URating) > 0 ?
                                "<a class='rating' href='" + rec.NycUrl.replace(/editorial.aspx/g, "user_review.aspx")
                                + "'><img src='/image/rating/r_" + Math.floor(rec.URating) + ".gif' /><br />" + rec.URating
                                :
                                "<a class='urating' href='" + rec.NycUrl.replace(/editorial.aspx/g, "add_review.aspx")
                                + "'>Rate It")
                            + "</a></td>";
            // Distance
            resultsList += "<td class='header' style='background: #dddddd'><br />"
                            + (rec.Distance != "" ? rec.Distance + "<br />miles" : "N/A");
+"</td>";
            // Featured/Rates
            resultsList += "<td class='header2'><br />"
                            + (WhatsNearbySearch.sec == "hot" ?
                                "<a href='" + rec.NycUrl
                                + "'><img src='/image/hotels/buttons/check_rates_btn.gif' /></a>"
                                : "&nbsp;")
                            + "</td>";
            resultsList += "</tr>";

            // separator
            resultsList += "<tr>";
            resultsList += "<td></td>";
            resultsList += "<td><img src='/image/spacer.gif' height='5px' /></td>";
            resultsList += "<td class='header'>&nbsp;</td>";
            resultsList += "<td class='header'>&nbsp;</td>";
            resultsList += "<td class='header' style='background: #dddddd'>&nbsp;</td>";
            resultsList += "<td class='header2'>&nbsp;</td>";
            resultsList += "</tr>";
            resultsList += "<tr>";
            resultsList += "<td colspan='6' style='background: url(/image/dot.gif); height:1px;'></td>";
            resultsList += "</tr>";

            // add pushpin to the map
            WhatsNearbySearch.addMapPushpin(rec, i);
        }

        resultsList += "</table>";

        div.innerHTML = resultsList;

        WhatsNearbySearch.mapObj.setMapView();
    },

    deleteResultsPushpins: function() {
        WhatsNearbySearch.mapObj.deleteAllPins();

        WhatsNearbySearch.mapObj.addPin(WhatsNearbySearch.mapObj.latitude, WhatsNearbySearch.mapObj.longitude,
                            WhatsNearbySearch.mapObj.pPTitle, WhatsNearbySearch.mapObj.pPDesc,
                            '', '', '', '', WhatsNearbySearch.mapObj.getCustomIcon("veIconStar"));
    },

    addMapPushpin: function(record, ppIdx) {
        // add pushpin to the map
        WhatsNearbySearch.mapObj.addPin(record.Latitude, record.Longitude,
	    (ppIdx + 1) + '. <a href=\'' + record.NycUrl + '\' class=\'recordTitle\'>' + record.Name + '</a>',

		(record.Editorial != null && (record.Editorial + '').strip() != '' ? record.Editorial
		    + ' <a href=\'' + record.NycUrl + '\' class=\'recordTitle\'>more</a>' + '<br /><br />' : '') +
	    (record.SectionID == 30 && record.Venue + '' != '' ? 'Venue: <b>' + record.Venue + '</b><br />' : '') +
	    '<table cellpadding=\'0\' cellspacing=\'0\'><tr valign=\'top\'><td>' +
	    (record.SectionID == 4 && record.Thumbnail != "" ? '<img src=\'' + record.Thumbnail
	        + '\' style=\'margin-right:6px;\' width=\'64px\' /></td><td>' : '') +
	    (record.Neighborhood != '' ? 'Neighborhood: ' + record.Neighborhood + '<br />' : '') +
	    record.Address.replace(/\n/g, '<br />') + '<br />' +
	    (record.Phone != '' ? '<b>' + record.Phone + '</b><br />' : '') +
	    '</td></tr></table><br />' +
	    (record.ERating > 0 ? '<img src=\'/image/rating/r_' + Math.floor(record.ERating) + '.gif\' /> <i>editorial review</i><br /><br />' : '') +

        // hotel reservation button
	    (record.SectionID == 4 ? '<a class=\'greenButtonStyle\' href=\'' +
	        record.NycUrl + '\'>&nbsp;&nbsp;MAKE RESERVATION&nbsp;&nbsp;</a><br /><br />' : '') +
        // restuarant reservation button
	    (record.BookingUrl != '' && record.SectionID == 6 ? '<a class=\'greenButtonStyle\' href=\'' +
	        record.BookingUrl + '\'>&nbsp;&nbsp;MAKE RESERVATION&nbsp;&nbsp;</a><br /><br />' : '') +
        // ticket button
	    (record.BookingUrl != '' && record.SectionID != 6 ? '<a class=\'greenButtonStyle\' href=\'' +
	        record.BookingUrl + '\'>&nbsp;&nbsp;BUY TICKETS&nbsp;&nbsp;</a><br /><br />' : '') +
	    '<div class=\'reverseRollOverLink\' style=\'line-height:20px;\'>' +
	    '<a class=\'regularDarkGrey\' href=\'' + record.NycUrl.replace(/editorial.aspx/g, "map_location.aspx")
	        + '\'>Get Directions</a> | ' +
	    '<a class=\'regularDarkGrey\' href=\'\' onclick=\'return emailThisPage(&quot;'
	        + record.NycPageTitle + '&quot;, &quot;' + record.NycUrl + '&quot;);\'>Send to Friend</a><br />' +
	    '<a class=\'regularDarkGrey\' href=\'\' onclick=\'map.setMapCenter('
	        + (ppIdx + 2) + ', 17);  return false;\'>zoom to street level</a> | ' +
	    '<a class=\'regularDarkGrey\' href=\'\' onclick=\'map.setMapView(); return false;\'>zoom out</a></div><br />',
	    '', '', '', '', WhatsNearbySearch.mapObj.getCustomIcon('veIconHotel', (ppIdx + 1)));
    }
}


var FindRes = {

    changeExpand : function(id,ExpandM,ExpandP) 
    {

        if( $(id).html().replace(/&amp;/,"&") == ExpandP)
        {
            $(id).html(ExpandM);            
        }
        else
        {
            $(id).html(ExpandP);
        }
    },
    
    	overtestytab : function(tab) {

			tab.style.background = "#ffffff";
			var img = tab.getElementsByTagName("IMG")[0];
			img.src = "/image/spacer.gif";
			
			

	},
	
	outtestytab : function(tab) {
			tab.style.background = "transparent url(/image/tab_bckgrd.jpg) repeat-x scroll 0 0";
			var img = tab.getElementsByTagName("IMG")[0];
			img.src = "/image/tab_arrow.gif";
			}			
} // end FindRes