/**
 * @class
 * Support functions used on VRACSearch servlet as well as the VRAC form (typeahead, etc.).
 */
ta.servlet.VRACSearch = {

    /**
     * @param {HTMLElement} elmt the typeahead elemnt
     * @param {Object} response the typeahead response 
     */
    homeVRGeoChanged:function(elmt, response)
    {
      $('VRAC_FORM').geo.value = response.value;
      var vrAlternatives = $('vrAlternatives');
      if (!response.vrpresent)
      {
        var buffer = [];
        buffer.push('<div class="sorry">');
        buffer.push(msg_no_vrs.replace('{0}', response.name));
        buffer.push('</div>');
    
        if (response.hasHotels)
        {
            var href = response.hotelUrl;
            if (!href)
            {
                href = '/Hotels-g' + response.value;
            }
    
            buffer.push('<div class="searchHotels">');
            buffer.push('<a href="' + href + '" rel="nofollow">');
            buffer.push(msg_search_hotels.replace('{0}', response.name));
            buffer.push('</a>');
            if (response.vralternatives.length == 0)
            {
                buffer.push('&nbsp;');
                buffer.push(msg_try_nearby);
            }
            buffer.push('</div>');
        }
        if (response.vralternatives.length > 0)
        {
            buffer.push('<div class="check">');
            buffer.push(msg_check_nearby);
            buffer.push('</div>');
            buffer.push('<ul class="locations">');
            var length = response.vralternatives.length;
            for (var i = 0; i < length; i++)
            {
                var vrAlt = response.vralternatives[i];
                buffer.push('<li><span class="fkLnk hvrIE6" onclick="ta.servlet.VRACSearch.chooseVracAlternative(\'');
                buffer.push(vrAlt.name);
                buffer.push('\',\'');
                buffer.push(vrAlt.value);
                buffer.push('\');">');
                buffer.push(vrAlt.name);
                buffer.push('</span></li>');
            }
            buffer.push('</ul><ul class="distance">');
            for (var i = 0; i < length; i++)
            {
                var vrAlt = response.vralternatives[i];
                buffer.push('<li>');
                buffer.push((vrAlt.unit == 'm' ? msg_miles_away : msg_km_away).replace('{0}', vrAlt.dist));
                buffer.push('</li>')
            }
            buffer.push('</ul>')
        }
    
        //  set the content
        var content = vrAlternatives.getElement('.content');
        content.innerHTML = buffer.join('');
        
        //  now that the new elements are part of the DOM add the 'hvrIE6' behavior
        if (window.ie6)
        {
            content.getElements('.hvrIE6').each(rules['span.hvrIE6']);
        }
        
        //  show the alternatives
        ta.servlet.VRACSearch.showVracAlternatives();
      }
      else
      {
          ta.servlet.VRACSearch.hideVracAlternatives();
      }
    },
    
    chooseVracAlternative:function(name, value)
    {
        $('vracGeo').value = name;
        $('VRAC_FORM').geo.value = value;
        ta.servlet.VRACSearch.hideVracAlternatives();
    },
    
    showVracAlternatives:function(event, element)
    {
        //  'vrMidForm' is present on the home page and lander typeaheads but not the /VRACSearch typeahead
        var vrMidForm = $('vrMidForm');
        if (vrMidForm)
        {
            vrMidForm.style.display = 'none';
        }

        $('vrAlternatives').style.display = 'block';
    },
    
    hideVracAlternatives:function(event, element)
    {
        $('vrAlternatives').style.display = 'none';

        //  'vrMidForm' is present on the home page and lander typeaheads but not the /VRACSearch typeahead
        var vrMidForm = $('vrMidForm');
        if (vrMidForm)
        {
            vrMidForm.style.display = 'block';
        }
    },
    
    hideVracAlternativesAndClearBox:function(event, element)
    {
        ta.servlet.VRACSearch.hideVracAlternatives();
        $('vracGeo').value = '';
    }
};