﻿/************
 *  Dealer Finder Javascript
 **********************************************************/
var map;
var addy;
var trafficInfo;
var dealers;
var Retread;
var Rv;
var DealerMarkers = new Array();
var PlazaMarkers = new Array();
var RVMarkers = new Array();
var RTDMarkers = new Array();
var AllDealers = new Array();
var AllDealersParams = new Array();
//var TypesTP = new Array("Generic", "Bosselman", "Loves", "Pilot", "Flying J");
var TypeDealer = new Array("dealer");
var Types24 = new Array("24Dealer");
var TypeTravelPlaza = new Array("tp");
var TypesOnsite = new Array("TireOnsite");
var TypeMRTDealer = new Array("mrt");
var TypeRVDealer = new Array("rv");
var TypeMCSNDealer = new Array("servicenetwork");
var gmarkers = [];
var weatherHTMLholder = "";
var streetsfixed = "http://maps.google.com/maps?hl=en&ie=UTF8&layer=c&panoid=Oy2FcZ9uNYE_8so7XhWugA&cbp=11,263.400924591814,,0,-7.1364205710919&z=14&iwloc=addr&utm_campaign=en&utm_medium=lp&utm_source=en-lp-na-us-gns-svn";
var directionfixed = "http://maps.google.com/maps?f=d&source=s_d&s&geocode=%3B%3BFRj2FwId4pAP-w%3B&hl=en&mra=dme&mrcr=0&mrsp=1&sz=10&via=1,2&rtol=0,2,3&ie=UTF8&z=10";
var hotelrestfixed = "http://maps.google.com/maps?f=q&source=s_q&hl=en&geocode=&sspn=0.720388,1.417236&ie=UTF8&spn=0.086524,0.177155&z=13";
var imageurlstart = "https://www.michelindealerincentives.com/dealerprofile/storeimages/";

       
String.prototype.trim = function() {
	return this.replace(/^\s+|\s+$/g,"");
} // String.prototype.trim = function() {

String.prototype.ltrim = function() {
	return this.replace(/^\s+/,"");
} // String.prototype.ltrim = function() {

String.prototype.rtrim = function() {
	return this.replace(/\s+$/,"");
} // String.prototype.rtrim = function() {

String.prototype.contains = function(t) { 
  return this.indexOf(t) >= 0 ? true : false 
} // String.prototype.contains = function(t) {
      
Array.prototype.contains = function(obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; }     


function gup( name ){  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");  var regexS = "[\\?&]"+name+"=([^&#]*)";  var regex = new RegExp( regexS );  var results = regex.exec( window.location.href );  if( results == null )    return "";  else    return results[1];}


function addLoadEvent(func) {
  var oldonload = window.onload;
  if (typeof window.onload != 'function') {
    window.onload = func;
  } // if (typeof window.onload != 'function') {
  else {
    window.onload = function() {
      if (oldonload) {
        oldonload();
      } // if (oldonload) {
      func();
    } // window.onload = function() {
  } // else -- if (typeof window.onload != 'function') {
} // function addLoadEvent(func) {

        
function initialize() {
  if (GBrowserIsCompatible()) {
    map = new GMap2(document.getElementById("map_canvas"));
    /*center on greenville intialally*/
    var center = new GLatLng(38.62749, -90.19842);
    map.setCenter(center, 3);
                              
    /*add map controls*/
    map.addControl(new GLargeMapControl3D());
    map.addControl(new GMapTypeControl());
    geocoder = new GClientGeocoder();
                                
    var get_type = gup('type');
    if (get_type == "mrt"){
      var ShowRTD = document.getElementById("rtddealers");
      if (ShowRTD)
        ShowRTD.checked = true;
    } // if (get_type == "mrt"){
    else if (get_type == "rv") {
      var ShowRV = document.getElementById("rvdealers");
      if (ShowRV)
        ShowRV.checked = true;
    } // else if (get_type == "rv") {
            
    var get_address = gup('address');
    if (get_address != "") {
      var AddressInput = document.getElementById("address");
      if (AddressInput)
        AddressInput.value = get_address;
      showAddress(get_address);                
    } // if (get_address != "") {
  } // if (GBrowserIsCompatible()) {
} // function initialize() {
        
       
/* strings to the postal code - needs to be parsed - and then look for the weather */
function loadJSON(result) {
//  var temp = new Array();
//  temp = JSON.stringify(result).split('"');
  //take the zip and feed it to the webservice - but how? With jquery of course this block calls the webservice and returns the weather
  /// <reference path="./!Scripts/jquery-1.2.3.min.js" />
//  var zip = temp[5];
  var zip = result;
  $.ajax({
    type: "POST",
    contentType: "application/json; charset=utf-8",
    url: "WebServices/WebService.asmx/WeatherXML",
    data: "{'zip':'" + zip + "'}",
    dataType: "json",
    success: function(msg) {
      var weatherholder = document.getElementById("weatherholder");
      var weatherbox = document.getElementById("weathercheck");                
      weatherHTMLholder = msg;
      if (weatherholder && weatherbox.checked) {
        weatherholder.innerHTML = msg;
      }
    }, // success: function(msg) {
    error: function() {
      alert("There was an error retrieving weather data!");
    } // error: function() {
  }); // $.ajax({            
} // function loadJSON(result) {
        
                
/*gecodes the address and points the map*/
function showAddress(address) {
  map = new GMap2(document.getElementById("map_canvas"));
  map.addControl(new GLargeMapControl3D());
  map.addControl(new GMapTypeControl());
  gmarkers = [];
  DealerMarkers = new Array();
  PlazaMarkers = new Array();
  RVMarkers = new Array();
  RTDMarkers = new Array();
  AllDealers = new Array();
  AllDealersParams = new Array();
       
  // Create a base icon for all of our markers that specifies the shadow, icon dimensions, etc.
  var dealerIcon = new GIcon();
  dealerIcon.iconSize = new GSize(32, 38);
  dealerIcon.shadowSize = new GSize(0, 0);
  dealerIcon.iconAnchor = new GPoint(0, 0);
  dealerIcon.infoWindowAnchor = new GPoint(15, 7); 
  dealerIcon.transparent = '!images/icon_overLay.png';
          
  var custIcon = new GIcon();
  custIcon.iconSize = new GSize(21, 34);
  custIcon.shadowSize = new GSize(0, 0);
  custIcon.iconAnchor = new GPoint(0, 0);
  custIcon.infoWindowAnchor = new GPoint(15, 7);
  custIcon.transparent = '!images/icon_overLay.png';
      
  var myIcons = [];
  myIcons['home'] = new GIcon(dealerIcon, '!images/icon_youLocation.png');
            
  if (geocoder) { 
    geocoder.getLatLng(address, function(point) {
      if (!point) {
        alert(address + " No encontrado");
      } // if (!point) {
      else {
        //to be used with lat/long search
        document.getElementById('search-str').innerHTML = address;
        var radius = "";
        radius = document.getElementById("radiusSelect");
        var radiusvalue = "25";
        var get_radius = gup('radius');
        if (get_radius != "") {
          radiusvalue = get_radius;
        }
        else if (radius)
          radiusvalue = radius.options[radius.selectedIndex].value;
        var url = "";
        url = "WebServices/WebService.asmx/DealerXML?radius=" + radiusvalue;
        url += "&lat=" + point.lat().toFixed(5);
        url += "&lng=" + point.lng().toFixed(5);
		    document.getElementById("lat").innerHTML = "<span>lat: " + point.lat().toFixed(5) + "</span>";
	      document.getElementById("lng").innerHTML = "<span>lng: " + point.lng().toFixed(5) + "</span>";
	      
        InitWeather(point.lat().toFixed(5), point.lng().toFixed(5));
	                    
	      map.clearOverlays();
	      switch (radiusvalue) {
	        case '50':
	          map.setCenter(point, 8);
	          break;
	        case '100':
	          map.setCenter(point, 7);
	          break;
	        case '150':
	          map.setCenter(point, 7);
	          break;
	        case '200':
	          map.setCenter(point, 6);
	          break;
	        default:
	          map.setCenter(point, 9);
	          break;
	      }
        var marker = new GMarker(point, { icon: myIcons['home']});
	      map.addOverlay(marker);
    		            
	      /*traffic overlay*/
        var trafficOptions = {incidents:true};
        trafficInfo = new GTrafficOverlay(trafficOptions);
        var trafficbox = document.getElementById("traffic");

        if (trafficbox && trafficbox.checked) {
          map.addOverlay(trafficInfo);
        }
        else {
          toggleState = 0;
        }
                        
        GDownloadUrl(url, function(doc) {
          var xmlDoc = GXml.parse(doc);
          var markers = xmlDoc.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            // obtain the attribues of each marker
            var lat = parseFloat(markers[i].getAttribute("lat"));
            var lng = parseFloat(markers[i].getAttribute("lng"));
            var point = new GLatLng(lat,lng);
            var distance = markers[i].getAttribute("distance") + " miles";
            var html = markers[i].getAttribute("html");
            var name = markers[i].getAttribute("label");
            var dealeraddress = markers[i].getAttribute("street") + " " + markers[i].getAttribute("location");
            var street = markers[i].getAttribute("street");
            var location = markers[i].getAttribute("location");
            var phone = markers[i].getAttribute("phone");
            var web = markers[i].getAttribute("website");
            //            var weekdays = markers[i].getAttribute("weekday");
            //            var weekend = markers[i].getAttribute("saturday");
            var weekdays = "";
            var weekend = "";
            var travelplaza = markers[i].getAttribute("travelplaza").trim();
            var rvdealer = markers[i].getAttribute("RVdealer");
            var rtddealer = markers[i].getAttribute("RTDdealer");
            var services = markers[i].getAttribute("services").trim();
            services = services.replace(/MD/g, "<sup>MD</sup>");
            var products = markers[i].getAttribute("products").trim();
            var images = markers[i].getAttribute("images").trim();
            var hoursserv = markers[i].getAttribute("hoursserv").trim();
            var hourers = markers[i].getAttribute("hourers").trim();
            var afterhours = markers[i].getAttribute("afterhours").trim();
            var secondafterhours = markers[i].getAttribute("secondafterhours");
            var tollfree = markers[i].getAttribute("tollfree");
            var faxnumber = markers[i].getAttribute("faxnumber");
            //            var sunday = markers[i].getAttribute("sunday");
            var sunday = "";
            var national = markers[i].getAttribute("national");
            var twentyfour = markers[i].getAttribute("twentyfour");
            var twentyfourHeader = markers[i].getAttribute("twentyfourHeader");
            var RoadsideService = markers[i].getAttribute("RoadsideService");
            var MichelinRetreadTires = markers[i].getAttribute("MichelinRetreadTires");
            var MICHELINXOne = markers[i].getAttribute("MICHELINXOne");
            var searchaddress = markers[i].getAttribute("street") + "+" + markers[i].getAttribute("location").replace(",", "+");
            var servicenetwork = markers[i].getAttribute("servicenetwork");
            var mobilonly = markers[i].getAttribute("mobilonly");
            if (mobilonly && (mobilonly == "true"))
              mobilonly = true;
            else
              mobilonly = false;
            var searchpoint = point.lat().toFixed(5) + "," + point.lng().toFixed(5);
            var streetsUrl = streetsfixed + "&q=" + searchaddress + "&g=" + searchaddress + "&cbll=" + searchpoint + "&ll=" + searchpoint;
            var directionUrl = directionfixed + "&daddr=" + searchaddress;
            var HotelsUrl = hotelrestfixed + "&q=" + searchaddress + "+hotels";
            var RestaurantsUrl = hotelrestfixed + "&q=" + searchaddress + "+restaurants";
            var ListType = "Dealer";
                    
            myIcons['dealers'] = new GIcon(custIcon, 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=' + (i + 1) + '|1a1ae1|ffffff');
            myIcons['rtd'] = new GIcon(custIcon, 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=' + (i + 1) + '|008A63|ffffff');
            myIcons['servicenetwork'] = new GIcon(custIcon, 'http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=' + (i + 1) + '|faf725|000000');
                    
            if (rtddealer.trim().toLowerCase() == "true")
              ListType = "RetreadDealer";
                      
            var Parameters = new Array();
            var ExtendedItems = new Array();
            var MainInformation = FormatTopInfo(name, street, location, phone, services, afterhours, twentyfour, distance, (i + 1), ListType, dealeraddress, address, point, twentyfourHeader, MichelinRetreadTires, MICHELINXOne, mobilonly, national, servicenetwork);
            var OtherStuff = FormatBottomInfo(point, name, address, phone, web, weekdays, weekend, streetsUrl, directionUrl, services, afterhours, secondafterhours, tollfree, faxnumber, sunday, distance, HotelsUrl, RestaurantsUrl, i, ListType, mobilonly, products, images, hoursserv, hourers);
            ExtendedItems.push(MainInformation);        
            ExtendedItems.push(OtherStuff);        
            AllDealers.push(ExtendedItems);        
            AllDealersParams.push(Parameters);   
            var ParamsIndex = AllDealersParams.length - 1;
                                                                 
            AllDealersParams[ParamsIndex].push(TypeDealer);
            if (rtddealer.trim().toLowerCase() == "true") { AllDealersParams[ParamsIndex].push(TypeMRTDealer); }
            if (rvdealer.trim().toLowerCase() == "true") { AllDealersParams[ParamsIndex].push(TypeRVDealer); }
            if (travelplaza.trim().toLowerCase() == "true") { AllDealersParams[ParamsIndex].push(TypeTravelPlaza); }
            if (twentyfour.trim().toLowerCase() == "true") { AllDealersParams[ParamsIndex].push(Types24); }
            if (servicenetwork.trim().toLowerCase() == "true") { AllDealersParams[ParamsIndex].push(TypeMCSNDealer); AllDealersParams[ParamsIndex].push(TypeMRTDealer); }
            if (RoadsideService.trim().toLowerCase() == "true") { AllDealersParams[ParamsIndex].push(TypesOnsite); }
//            if (services.contains("On Site Service")) { AllDealersParams[ParamsIndex].push(TypesOnsite); }
                    
            dealers = createMarker(point, name, street, location, address, dealeraddress, phone, web, weekdays, weekend, streetsUrl, directionUrl, services, afterhours, secondafterhours, tollfree, faxnumber, sunday, distance, HotelsUrl, RestaurantsUrl, (i + 1), ListType, twentyfourHeader, MichelinRetreadTires, MICHELINXOne, mobilonly, national, servicenetwork);
            DealerMarkers.push(dealers);    
            map.addOverlay(dealers);
                    
          } // for (var i = 0; i < markers.length; i++) {
          DisplayDealerList();        
        }); // GDownloadUrl(url, function(doc) {
                        
        // A function to create the marker and set up the event window
        function createMarker(point, name, street, location, address, dealeraddress, phone, web, weekdays, weekend, streetsUrl, directionUrl, services, afterhours, secondafterhours, tollfree, faxnumber, sunday, distance, HotelsUrl, RestaurantsUrl, i, ListType, twentyfourHeader, MichelinRetreadTires, MICHELINXOne, mobilonly, national, servicenetwork) {
          var useIcon = "";
          if (servicenetwork == "true") {
            useIcon = myIcons['servicenetwork'];
          }
          else if (ListType == "RetreadDealer") {
            useIcon = myIcons['rtd']; 
          } // if (ListType == "RetreadDealer") {
          else { 
            useIcon = myIcons['dealers']; 
          } // else -- if (ListType == "RetreadDealer") {
                            
          var marker = new GMarker(point, useIcon);
//          GEvent.addListener(marker, "mouseover", function() {
          var secondtab = "<div class=\"gmtabcontainor\">";
          if (twentyfourHeader && (twentyfourHeader != ""))
            secondtab += "<p>" + twentyfourHeader + "</p>";

          secondtab += "<p>Michelin&reg; New Tires</p>";

          if (MichelinRetreadTires && (MichelinRetreadTires != ""))
            secondtab += "<p>" + MichelinRetreadTires + "</p>";

          if (MICHELINXOne && (MICHELINXOne != ""))
            secondtab += "<p>" + MICHELINXOne + "</p>";

          if (national && (national.trim().toLowerCase() == "true"))
            secondtab += "<p>National Accounts</p>";
          if (!mobilonly) {
            secondtab += "<p><a href=\"" + HotelsUrl + "\" target=\"_Blank\">Ubique Hoteles</a></p>";
            secondtab += "<p><a href=\"" + RestaurantsUrl + "\" target=\"_Blank\">Ubique Restaurantes</a></p>";
          }
          secondtab += "</div>";
          GEvent.addListener(marker, "click", function() {
            if (mobilonly)
              marker.openInfoWindowTabsHtml([new GInfoWindowTab("Principal", "<div class=\"infoballtab1\"><p><strong>" + name + "</strong></p><p>Mobil Unit Only</p><p>Distancia: " + distance + "</p><p>Tel&eacute;fono: " + phone + "</p><p>Apr&egrave;s les heures d'ouverture: " + afterhours + "</p></div>"), new GInfoWindowTab("Servicios", secondtab)]);
            else
              marker.openInfoWindowTabsHtml([new GInfoWindowTab("Principal", "<div class=\"infoballtab1\"><p><strong>" + name + "</strong></p><p>" + street + "<br />" + location + "</p><p><a href=\"#\" onclick=\"window.open('Directions.aspx?toaddress=" + escape(dealeraddress) + "&fromaddress=" + escape(address) + "','locatorwindow');\">Obtenga instrucciones</a></p><p>Distancia: " + distance + "</p><p>Tel&eacute;fono: " + phone + "</p><p>Servicios fuera de horario: " + afterhours + "</p></div><div>Latitud: " + point.lat().toFixed(5) + "</div><div>Longitud: " + point.lng().toFixed(5) + "</div>"), new GInfoWindowTab("Servicios", secondtab)]);
          }); // GEvent.addListener(marker, "click", function() {
          return marker;
        } // function createMarker(point,name,html,address,phone,web,weekdays,weekend...
                        
        // This function picks up the click and opens the corresponding info window
        function myclick(i) {
          GEvent.trigger(gmarkers[i], "click");
        } // function myclick(i) {
      } // else -- if (!point) {
    }); // geocoder.getLatLng(address, function(point) {
  } // if (geocoder) {
} // function showAddress(address) {


function FormatTopInfo(name, street, location, phone, services, afterhours, twentyfour, distance, i, ListType, dealeraddress, address, point, twentyfourHeader, MichelinRetreadTires, MICHELINXOne, mobilonly, national, servicenetwork) {
  var DetailList = "";
          
  if (servicenetwork == "true") { 
      DetailList += "<div class=\"loc-name\"><p><img class=\"pinicons\" src=\"http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=" + i + "|faf725|000000\" /><strong>" + name + "</strong>";
  } // else -- if (ListType == "RetreadDealer") {
  else if (ListType == "RetreadDealer") { 
    DetailList += "<div class=\"loc-name\"><p><img class=\"pinicons\" src=\"http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=" + i + "|008A63|ffffff\" /><strong>" + name + "</strong>";
  } // if (ListType == "RetreadDealer") {
  else { 
    DetailList += "<div class=\"loc-name\"><p><img class=\"pinicons\" src=\"http://chart.apis.google.com/chart?chst=d_map_pin_letter&chld=" + i + "|1a1ae1|ffffff\" /><strong>" + name + "</strong>";
  }
  if (distance != "") DetailList += "<label class=\"margin\"><em>" + distance + "</em></label>";
  else DetailList += "<label>Distancia: N/A</label>";
 
  if (servicenetwork == "true") DetailList += "<span class=\"servicenetwork\"></span>";
  
  DetailList += "</p>";
  if (mobilonly) DetailList += "<p><label>Mobile Unit Only</label></p>";
  else {
    if (street != "") DetailList += "<p><label>" + street + "</label><label>" + location + "</label>";
    else DetailList += "<p><label>Address: N/A</label>";

    if (dealeraddress != "") DetailList += "<label class=\"margintop\"><a href=\"Directions.aspx?toaddress=" + escape(dealeraddress) + "&fromaddress=" + escape(address) + "\" target=\"_Blank\">Obtenga instrucciones</a></label>\n";
    DetailList += "<label class=\"margintop\">Latitud: " + point.lat().toFixed(5) + "</label>\n";
    DetailList += "<label class=\"margintop\">Longitud: " + point.lng().toFixed(5) + "</label>\n";

    DetailList += "</p>\n";
  }
  
  if (twentyfour == "true") {
    if (afterhours != "") {
      if (phone != "") DetailList += "<p><label>Tel\351fono del Negocio: <strong>" + phone + "</strong></label>";
      else DetailList += "<label>Tel\351fono del Negocio: N/A</label>";
      if (afterhours != "") DetailList += "<span class=\"phone\"></span><label>Servicios fuera de horario: <strong>" + afterhours + "</strong></label></p>";
      else DetailList += "<label>Servicios fuera de horario: N/A</label></p>";
    }
    else {
      if (phone != "") DetailList += "<p><span class=\"phone\"></span><label>Tel\351fono del Negocio: <strong>" + phone + "</strong></label>";
      else DetailList += "<label>Tel\351fono del Negocio: N/A</label>";
      if (afterhours != "") DetailList += "<label>Servicios fuera de horario: <strong>" + afterhours + "</strong></label></p>";
      else DetailList += "<label>Servicios fuera de horario: N/A</label></p>";
    }
  }      
  else {
    if (phone != "") DetailList += "<p><label>Tel\351fono del Negocio: <strong>" + phone + "</strong></label>";
    else DetailList += "<label>Tel\351fono del Negocio: N/A</label>";
    if (afterhours != "") DetailList += "<label>Servicios fuera de horario: <strong>" + afterhours + "</strong></label></p>";
    else DetailList += "<label>Servicios fuera de horario: N/A</label></p>";
  }      
        
  DetailList += "<p>";
  if (twentyfour)
    DetailList += "<label>" + twentyfourHeader + "</label>";

  DetailList += "<label>Michelin&reg; New Tires</label>";

  if (MichelinRetreadTires && (MichelinRetreadTires != ""))
    DetailList += "<label>" + MichelinRetreadTires + "</label>";

  if (MICHELINXOne && (MICHELINXOne != ""))
    DetailList += "<label>" + MICHELINXOne + "</label>";
  if (national && (national.trim().toLowerCase() == "true"))
    DetailList += "<label>National Accounts</label>";
  DetailList += "</p><div class=\"clear\"></div></div>\n";
          
  return DetailList;
} // function FormatTopInfo(name,street,location,phone,services,afterhours,distance,i,ListType) {        


function FormatBottomInfo(point, name, address, phone, web, weekdays, weekend, streetsUrl, directionUrl, services, afterhours, secondafterhours, tollfree, faxnumber, sunday, distance, HotelsUrl, RestaurantsUrl, i, ListType, mobilonly, products, images, hoursserv, hourers) {
  var DetailList = "<div class=\"OtherStuff\">";

  DetailList += "<div class=\"AccordionContainer\" id=\"AccordionContainer" + i + "\">\n";
  DetailList += "<div class=\"AccordionTitle acc_closed\">\n";
  DetailList += "  <h3><span>Accordion Header</span></h3>\n";
  DetailList += "</div>\n";
  DetailList += "<div class=\"AccordionContent item1\">\n";
  if (services != "") DetailList += "<label>Servicios:</label><p>" + services + "</p><div class=\"clear\"></div>\n";
  else DetailList += "<label>Servicios:</label><p>N/A</p><div class=\"clear\"></div>";
  if (products != "") DetailList += "<label class=\"long\">Productos adicionales:</label><p class=\"short\">" + products + "</p><div class=\"clear\"></div>\n";
  if (images != "") {
    var imagelist = "";
    var imagefilenames = images.split('|');
    for (var k = 0; k < imagefilenames.length; k++) {
      if (imagelist == "") {
        imagelist += "<a rel=\"lightbox[site" + i + "]\" title=\"Site Photo" + (k + 1) + "\" href=\"" + imageurlstart + imagefilenames[k].trim() + "\">Photo " + (k + 1) + "</a>";
      }
      else
        imagelist += " | <a rel=\"lightbox[site" + i + "]\" title=\"Site Photo" + (k + 1) + "\" href=\"" + imageurlstart + imagefilenames[k].trim() + "\">Photo " + (k + 1) + "</a>";
    } 
    DetailList += "<label>Photos:</label><p>" + imagelist + "</p><div class=\"clear\"></div>\n";
  }
  if (!mobilonly) {
    DetailList += "<div class=\"MediumHolder\"><a href=\"" + HotelsUrl + "\" target=\"_Blank\"><span class=\"hotel\"></span><em>Ubique Hoteles</em></a></div>\n";
    DetailList += "<div class=\"MediumHolder\"><a href=\"" + RestaurantsUrl + "\" target=\"_Blank\"><span class=\"food\"></span><em>Ubique Restaurantes</em></a></div><div class=\"clear\"></div>\n";
  }
  DetailList += "</div>\n";
  DetailList += "</div>\n";
  var ServTable = "";
  var ErsTable = ""
  if (hoursserv != "") {
    var hoursservout1 = "";
    var hoursservout1_hasdata = false;
    var hoursservout2 = "";
    var hoursservout2_hasdata = false;
    var hoursservlist = hoursserv.split('|');
    for (var j = 0; j < hoursservlist.length; j++) {
      if ((j % 2) == 0) {
        if (hoursservlist[j].trim() != "") {
          hoursservout1_hasdata = true;
        }
        hoursservout1 += "<td>" + hoursservlist[j].trim() + "</td>";
      } // if ((j % 2) == 0) {
      else {
        if (hoursservlist[j].trim() != "") {
          hoursservout2_hasdata = true;
        } // if (hoursservlist[j].trim() != "") {
        hoursservout2 += "<td>" + hoursservlist[j].trim() + "</td>";
      } // else if ((j % 2) == 0) {
    } // for (var j = 0; j < hoursservlist.length; j++) {
    if (hoursservout1_hasdata && hoursservout2_hasdata) {
      var hoursservline0 = "<tr><th></th><td>dom</td><td>lun</td><td>mar</td><td>mi&eacute;</td><td>jue</td><td>vie</td><td>s&aacute;b</td></tr>\n";
      var hoursservline1 = "<tr><th>Open</th>" + hoursservout1 + "</tr>\n";
      var hoursservline2 = "<tr><th>Closed</th>" + hoursservout2 + "</tr>\n";
      ServTable += "<h4>Regular Service Hours:</h4>\n";
      ServTable += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\n";
      ServTable += "<thead>\n";
      ServTable += hoursservline0;
      ServTable += "</thead>\n";
      ServTable += "<tbody>\n";
      ServTable += hoursservline1;
      ServTable += hoursservline2;
      ServTable += "</tbody>\n";
      ServTable += "</table>\n";
    } // if (hoursservout1_hasdata && hoursservout2_hasdata) {
  } // if (hoursserv != "") {
  if (hourers != "") {
    var hourersout1 = "";
    var hourersout1_hasdata = false;
    var hourersout2 = "";
    var hourersout2_hasdata = false;

    var hourerslist = hourers.split('|');
    for (var k = 0; k < hourerslist.length; k++) {
      if ((k % 2) == 0) {
        if (hourerslist[k].trim() != "") {
          hourersout1_hasdata = true;
        }
        hourersout1 += "<td>" + hourerslist[k].trim() + "</td>";
      } // if ((k % 2) == 0) {
      else {
        if (hourerslist[k].trim() != "") {
          var hourersout2_hasdata = true;
        } // if (hourerslist[k].trim() != "") {
        hourersout2 += "<td>" + hourerslist[k].trim() + "</td>";
      } // else if ((k % 2) == 0) {
    } // for (var k = 0; k < hourerslist.length; k++) {
    if (hourersout1_hasdata && hourersout2_hasdata) {
      var hourersline0 = "<tr><th></th><td>dom</td><td>lun</td><td>mar</td><td>mi&eacute;</td><td>jue</td><td>vie</td><td>s&aacute;b</td></tr>\n";
      var hourersline1 = "<tr><th>Open</th>" + hourersout1 + "</tr>\n";
      var hourersline2 = "<tr><th>Closed</th>" + hourersout2 + "</tr>\n";
      ErsTable += "<h4>Emergency Roadside Service Hours:</h4>\n";
      ErsTable += "<table border=\"0\" cellpadding=\"0\" cellspacing=\"0\" align=\"center\">\n";
      ErsTable += "<thead>\n";
      ErsTable += hourersline0;
      ErsTable += "</thead>\n";
      ErsTable += "<tbody>\n";
      ErsTable += hourersline1;
      ErsTable += hourersline2;
      ErsTable += "</tbody>\n";
      ErsTable += "</table>\n";
    } // if (hoursservout1_hasdata && hoursservout2_hasdata) {
  } // if (hoursserv != "") {
  if ((ErsTable != "") || (ServTable != "")) {
    DetailList += "<div class=\"AccordionContainer\" id=\"AccordionContainer_" + i + "\">\n";
    DetailList += "<div class=\"AccordionTitle acc2_closed\">\n";
    DetailList += "  <h3 class=\"timesacchead\"><span>Accordion Header</span></h3>\n";
    DetailList += "</div>\n";
    DetailList += "<div class=\"AccordionContent item1\">\n";
    DetailList += ServTable;
    DetailList += ErsTable;
    DetailList += "</div>\n";
    DetailList += "</div>\n";

  }
  DetailList += "</div>\n";
  return DetailList;
} // function FormatBottomInfo(name,address,phone,web,weekdays,weekend,streetsUrl,directionUrl,services,afterhours,secondafterhours,tollfree,faxnumber,sunday,distance,HotelsUrl,RestaurantsUrl,i,ListType) {        
  
            
/*toggle the traffic overlay - should be able to use with all overlays*/
function toggleTraffic() {
  var trafficbox = document.getElementById("traffic");               

  if (trafficbox && trafficbox.checked) {
    map.addOverlay(trafficInfo);
  }
  else {
    map.removeOverlay(trafficInfo);
  }
} // function toggleTraffic() {
  
            
/*toggle the traffic overlay - should be able to use with all overlays*/
function toggleWeather() {
  var weatherbox = document.getElementById("weathercheck");               
  var weatherholder = document.getElementById("weatherholder");

  if (weatherbox && weatherbox.checked) {
     if (weatherholder) weatherholder.innerHTML = weatherHTMLholder;
  }
  else {
    if (weatherholder) weatherholder.innerHTML = "";
  }

} // function toggleWeather() {


function checkRadioFilters() {
  var allFilters = new Array();
  allFilters.push(TypeDealer);
  var RadioFilters = document.getElementsByClassName("radio-item","input","left-nav-links");
  for (var j = 0; j < RadioFilters.length; j++) {
    if (RadioFilters[j].checked) {
      switch (RadioFilters[j].id) {
        case "mcsndealers":
          allFilters.push(TypeMCSNDealer);
          break;
        case "twentyfour":
          allFilters.push(Types24);
          break;
        case "plazas":
          allFilters.push(TypeTravelPlaza);
          break;
        case "onsite":
          allFilters.push(TypesOnsite);
          break;
        case "rtddealers":
          allFilters.push(TypeMRTDealer);
          break;
        case "rvdealers":
          allFilters.push(TypeRVDealer);      
          break;
        default:
          break;
      } // switch (FilterUsed.id) {
    } // if (!FilterUsed && RadioFilters[j].checked) {
  } // for (var j = 0; j < RadioFilters.length; j++) {
  return allFilters;
}  // function checkRadioFilters() {     

      
function DisplayDealerList() {
  var allFilterParams = checkRadioFilters();
  var dealercount = 0;
  var list = "<h2>Detalles</h2><input type=\"button\" class=\"print\" value=\"Imprimer\" onclick=\"PrintListTop();\" /><div class=\"clear\"></div><div class=\"list-head-first\"><div class=\"clear\"></div></div>";
  for (var i = 0; i < AllDealers.length; i++) {
    var addentry = true;
    for (var k = 0; k < allFilterParams.length; k++) {
      if (!AllDealersParams[i].contains(allFilterParams[k])) {
        addentry = false;
        break;
      } // if (!AllDealersParams[i].contains(allFilterParams[k])) {
    } // for (var k = 0; k < allFilterParams.length; k++) {
    if (addentry) {
      DealerMarkers[i].show();
      if ((dealercount%2) == 1) {
        list += "<div class=\"oddentry\">";
        for (var j = 0; j < AllDealers[i].length; j++ ) {
          list += AllDealers[i][j] + "\n";
        } // for (var j = 0; j < AllDealers[i].length; j++ ) {
        list += "</div>";
      } // if ((dealercount%2) == 1) {
      else {
        list += "<div class=\"evenentry\">";
        for (var j = 0; j < AllDealers[i].length; j++ ) {
          list += AllDealers[i][j] + "\n";
        } // for (var j = 0; j < AllDealers[i].length; j++ ) {
        list += "</div>";
      } // else -- if ((dealercount%2) == 1) {
      dealercount++;
    } // if (addentry) {
    else {
      DealerMarkers[i].hide();
    } // else -- if (addentry) {
  } // for (var i = 0; i < AllDealers.length; i++) {
  if (dealercount > 0)
    document.getElementById("service").innerHTML = list;
  else
    document.getElementById("service").innerHTML = "";
         
  InitAccordions();
  InitMarkers();
  initLightbox();
} // function DisplayDealerList(DealerTypeList) { 
        
        
function InitAccordions() {
  var elements = new Array();
  for (var i = 0; i < AllDealers.length; i++) {
    elements.push(document.getElementById("AccordionContainer" + i));
    if (elements[i]) {
      elements[i].JDAccordion = new JDAccordion("AccordionContainer" + i,400.0,-1,'acc_closed','acc_open');
      var headers = document.getElementsByClassName("AccordionTitle", "div", elements[i].id);
      for (var j = 0; j < headers.length; j++) {
        var myElement = elements[i];
        headers[j].onmousedown = (function(e, i) {return function(){ e.JDAccordion.runAccordion(i,this); }})(elements[i], j+1);
      } // for (var j = 0; j < headers.length; j++) {
    } // if (element) {
  } // for (var i = 0; i < AllDealers.length; i++) {
  var elements2 = new Array();
  for (var k = 0; k < AllDealers.length; k++) {
    elements2.push(document.getElementById("AccordionContainer_" + k));
    if (elements2[k]) {
      elements2[k].JDAccordion = new JDAccordion("AccordionContainer_" + k, 400.0, -1, 'acc2_closed', 'acc2_open');
      var headers2 = document.getElementsByClassName("AccordionTitle", "div", elements2[k].id);
      for (var l = 0; l < headers.length; l++) {
        var myElement2 = elements2[k];
        headers2[l].onmousedown = (function (e, k) { return function () { e.JDAccordion.runAccordion(k, this); } })(elements2[k], l + 1);
      } // for (var l = 0; l < headers.length; l++) {
    } // if ((elements2[k]) {
  } // for (var k = 0; k < AllDealers.length; k++) {
} // function InitAccordions() {


function InitMarkers() {
  var locations = document.getElementsByClassName("pinicons","img","service");
  var mymarkers = new Array();
  for (var i = 0; i < locations.length; i++) {
    var chld = locations[i].src.substr(locations[i].src.indexOf("chld="));
    var afterequal = chld.substr(chld.indexOf("=")+1);
    var markerindex = afterequal.substr(0,afterequal.indexOf("|"));
    if ((markerindex != null) && (markerindex != "")) {
      mymarkers[i] = DealerMarkers[markerindex-1];
      GEvent.addDomListener(locations[i], 'click',(function(m){return function() { GEvent.trigger(m, 'click'); document.location.href = '#maptop' }})(mymarkers[i])); // GEvent.addDomListener(div, 'click', function() {
    } //  if ((markerindex != null) && (markerindex != "")) {
  } // for (var i = 0; i < locations.length; i++) {
} // function InitMarkers() {

function printSelection(id){
  var node = document.getElementById(id);
  var content;
  
  if (node)
    content = node.innerHTML;
    
  var pwin=window.open('','print_content','width=100,height=100');

  pwin.document.open();
  pwin.document.write('<html><body onload="window.print()">'+content+'</body></html>');
  pwin.document.close();
 
  setTimeout(function(){pwin.close();},1000);
} // function printSelection(id){


function displayPhoneInfo(id){
  var node = document.getElementById(id);
  var content;
  var winW = 0;
  var winH = 0;
  var offsetH = 0;
  var offsetW = 0;
  var headcontent = "<title>Google Maps Mobile Download Instructions</title>\n";
  headcontent += "<link rel=\"stylesheet\" type=\"text/css\" href=\"!css/default.css\" />";
  
  if (node)
    content = node.innerHTML;
    
  if (parseInt(navigator.appVersion)>3) {
    if (navigator.appName=="Netscape") {
      winW = window.innerWidth;
      winH = window.innerHeight;
    } // if (navigator.appName=="Netscape") {
    else if (navigator.appName.indexOf("Microsoft")!=-1) {
      winW = document.body.offsetWidth;
      winH = document.body.offsetHeight;
    } // else if (navigator.appName.indexOf("Microsoft")!=-1) {
  } // if (parseInt(navigator.appVersion)>3) {
  
  if (winW > 0) {
    offsetH = (winH - 400)/2;
    offsetW = (winW - 400)/2;
  } // if (winW > 0) {
  
  var pwin=window.open('','print_content','width=450,height=450,top=' + offsetH + ',left=' + offsetW);
  pwin.document.open();
  pwin.document.write('<html><head>' + headcontent + '</head><body>'+content+'</body></html>');
  pwin.document.close();
}
function PrintListTop() {
  var dealerlisttop = document.getElementsByClassName("loc-name", "div", "service");
  var printstring = "";
  var containorDiv = document.createElement('div');
  if (containorDiv.ID)
    containorDiv.ID = "service";
  else
    containorDiv.setAttribute("ID", "service");

  var tmpDiv = document.createElement('div');
  tmpDiv.appendChild(containorDiv);
  var dealercount = 0;
  for (var i = 0; i < dealerlisttop.length; i++) {
    var DetailsDiv = document.createElement('div');
    DetailsDiv.innerHTML = dealerlisttop[i].innerHTML;
    DetailsDiv.className = dealerlisttop[i].className;
    var EntryDiv = document.createElement('div');
    if ((dealercount % 2) == 1) {
      EntryDiv.className = "oddentry";
    }
    else {
      EntryDiv.className = "evenentry";
    }
    EntryDiv.appendChild(DetailsDiv);
    containorDiv.appendChild(EntryDiv);
    dealercount++;
  } // END -- for (var i = 0; i < dealerlisttop.length; i++) {
  printstring = tmpDiv.innerHTML;
  var pwin = window.open('', 'print_content', 'width=100,height=100');

  pwin.document.open();
  pwin.document.write('<html><head><title>Detalles de Imprimer</title><link rel="stylesheet" type="text/css" href="!css/default.css" /><link rel="stylesheet" type="text/css" href="!css/accordion.css" /></head><body onload="window.print()">' + printstring + '</body></html>');
  pwin.document.close();

  setTimeout(function () { pwin.close(); }, 1000);
} // END -- function PrintListTop() {


function InitWeather(latitude, longitude) {
  var mywebservice = "/WebServices/GetGeocode.asmx/YahooRevGeocode?latitude=" + latitude + "&longitude=" + longitude;

  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (XMLHttpRequestObject) {
    XMLHttpRequestObject.open('GET', mywebservice, true);
    XMLHttpRequestObject.onreadystatechange = function () {
      if (((XMLHttpRequestObject.readyState == 4) || (XMLHttpRequestObject.readyState == 'complete')) &&
            XMLHttpRequestObject.status == 200) {
        var AJAXresponse = XMLHttpRequestObject.responseText;
        var myParsedString = "";
        try { //Internet Explorer
          var xmlobject = new ActiveXObject("Microsoft.XMLDOM");
          xmlobject.async = "false";
          xmlobject.loadXML(AJAXresponse);
          myParsedString = xmlobject.childNodes(1).text;
        } // try { Internet Explorer
        catch (e) {
          try { //Firefox, Mozilla, Opera, etc.
            parser = new DOMParser();
            xmlobject = parser.parseFromString(AJAXresponse, "text/xml");
            myParsedString = xmlobject.firstChild.textContent;
          } // try { Firefox, Mozilla, Opera, etc.
          catch (e) {
            xmlobject = null;
          } // catch(e) { -- try { Firefox, Mozilla, Opera, etc.
        } // catch(e) { -- try { //Internet Explorer
        DisplayWeather(myParsedString);
      } // if (((XMLHttpRequestObject.readyState == 4) || (XMLHttpRequestObject.readyState == 'complete')) && 
    } // XMLHttpRequestObject.onreadystatechange = function() { 
    XMLHttpRequestObject.send(null);
  }
}


function DisplayWeather(result) {
  var zip = result;
  var mywebservice = "/WebServices/WebService.asmx/WeatherXML?zip=" + zip;

  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new ActiveXObject("Microsoft.XMLHTTP");
  }
  if (XMLHttpRequestObject) {
    XMLHttpRequestObject.open('GET', mywebservice, true);
    XMLHttpRequestObject.onreadystatechange = function () {
      if (((XMLHttpRequestObject.readyState == 4) || (XMLHttpRequestObject.readyState == 'complete')) &&
            XMLHttpRequestObject.status == 200) {
        var AJAXresponse = XMLHttpRequestObject.responseText;
        var msg = "";
        try { //Internet Explorer
          var xmlobject = new ActiveXObject("Microsoft.XMLDOM");
          xmlobject.async = "false";
          xmlobject.loadXML(AJAXresponse);
          msg = xmlobject.childNodes(1).text;
        } // try { Internet Explorer
        catch (e) {
          try { //Firefox, Mozilla, Opera, etc.
            parser = new DOMParser();
            xmlobject = parser.parseFromString(AJAXresponse, "text/xml");
            msg = xmlobject.firstChild.textContent;
          } // try { Firefox, Mozilla, Opera, etc.
          catch (e) {
            xmlobject = null;
          } // catch(e) { -- try { Firefox, Mozilla, Opera, etc.
        } // catch(e) { -- try { //Internet Explorer
        var weatherholder = document.getElementById("weatherholder");
        var weatherbox = document.getElementById("weathercheck");
        weatherHTMLholder = msg;
        if (weatherholder && weatherbox.checked) {
          weatherholder.innerHTML = msg;
        }
      } // if (((XMLHttpRequestObject.readyState == 4) || (XMLHttpRequestObject.readyState == 'complete')) && 
    }  // XMLHttpRequestObject.onreadystatechange = function() { 
    XMLHttpRequestObject.send(null);
  } // if (XMLHttpRequestObject) {
} // function DisplayWeather(result) {

