  var listingsXmlData;
  var curlistingXmlData;
  var current_listing;
  var current_listing_details;
  var zoom_properties = new Array([632.813,178.032],[316.406,157.222],[158.203,106.706],[79.102,58.817],[39.551,30.120],[19.775,15.154],[9.888,7.588],[4.944,3.795],[2.472,1.898],[1.236,0.949],[0.618,0.475],[0.309,0.237],[0.154,0.119],[0.077,0.059],[0.039,0.030],[0.019,0.015],[0.010,0.007],[0.005,0.004]);
  var data_to_parse = new Array("hook","mls","pid","lclass","status","price","photo","bedrooms","bathrooms","square_feet","lot_size","full_location","cut_location","street","city","state","zip","custom_link","custom_link_name","virtual_tour","have_multipictures","include_map","hide_address","map_url","lat","lng","cc_new","cc_viewed","cc_see","cc_moreinfo","price_change","calc_monthly","calc_price","calc_down","weekdays","AutoExtract","company_name","mls_full_name","light_mls","idx_icon","disclaimer");
  var icons_lib = new Array();
  var map_zoom_level = 9;
  var data_loading = false;
  var initialize = false;
  var init_map_data = false;
  var init_map = false;
  var total_pages = 0;
  var page_size = 20;
  var abs_begin = 1;
  var total_results_limit = -1;
  var abs_end = 20;
  var next_page = 1;
  var prev_page = 1;
  var map_max_view = 0;
  var map_total_geo = 0;
  var map_total_view = 0;
  var total_in_boundaries = 0;
  var map_ctr_lat = 0;
  var map_ctr_lng = 0;
  var map_left_top_x = 0;
  var map_left_top_y = 0;
  var map_right_bottom_x = 0;
  var map_right_bottom_y = 0;
  var map_change = false;
  var is_map_move = false;
  var centered_zoom = false;
  var posX = 0;
  var posY = 0;
  var additional_url_params = "";
  var is_ld_show = false;
  var send_params = null;
  var max_results_exceeded = null;

  function listing_obj(src_obj){
    for(var i=0;i<data_to_parse.length;i++){
      if(src_obj.getElementsByTagName(data_to_parse[i]).item(0) && src_obj.getElementsByTagName(data_to_parse[i]).item(0).firstChild){
        this[data_to_parse[i]] = src_obj.getElementsByTagName(data_to_parse[i]).item(0).firstChild.data;
      } else {
        this[data_to_parse[i]] = "";
      }
    }
    this.nprice = 0;
    if(this.price!=""){
      var nprice = this.price;
      nprice = nprice.replace(/\,/g,"");
      nprice = nprice.replace(/\$/g,"");
      this.nprice = nprice;
    }
    if(this.photo==""){
      this.photo = "http://isvr.net/properties/empty_image.gif";
    }
    this.address = this.full_location;
    this.fullData = false;
  }

  var listings_array = new Array();
  var AJAXUrlObj = new AJAXUrlClass();

  function updatelistingsXmlData(xd) {
    listings_array = new Array();
    listingsXmlData = xd;
    var results_type = listingsXmlData.getElementsByTagName("type");
    if(results_type.length > 0){
      handleResults(results_type.item(0).firstChild.data,listingsXmlData);
      return;
    }
    is_logged = true;
    var listings = listingsXmlData.getElementsByTagName("listing");
    total_listings = Number(getXMLVar(listingsXmlData.getElementsByTagName("total").item(0)));
    if(total_listings==0){
      showLoadingBlock(false);
      updateList(true);
      showListBlock(true);
      return;
    }
    if(show_type == "List"){
      page_size = Number(getXMLVar(listingsXmlData.getElementsByTagName("page_size").item(0)));
      page_current = Number(getXMLVar(listingsXmlData.getElementsByTagName("current_page").item(0)));
      abs_begin = Number(getXMLVar(listingsXmlData.getElementsByTagName("abs_begin").item(0)));
      abs_end = Number(getXMLVar(listingsXmlData.getElementsByTagName("abs_end").item(0)));
      next_page = Number(getXMLVar(listingsXmlData.getElementsByTagName("next_page").item(0)));
      prev_page = Number(getXMLVar(listingsXmlData.getElementsByTagName("prev_page").item(0)));
      var tmp = listingsXmlData.getElementsByTagName("total_results_limit").item(0);
      if (tmp) {//for checking total results exceed max allowed for mls
        total_results_limit = Number(getXMLVar(tmp));
        if (total_results_limit > 0 && total_results_limit == total_listings) {
          max_results_exceeded = '1';
        }
      }
      total_pages = Math.ceil(total_listings / page_size);
    }
    if(show_type == "Map"){
      map_max_view = getXMLVar(listingsXmlData.getElementsByTagName("max_view").item(0));
      map_total_geo = getXMLVar(listingsXmlData.getElementsByTagName("total_geo").item(0));
      map_total_view = getXMLVar(listingsXmlData.getElementsByTagName("total_view").item(0));
      total_in_boundaries = getXMLVar(listingsXmlData.getElementsByTagName("total_in_boundaries").item(0));
      map_ctr_lat = getXMLVar(listingsXmlData.getElementsByTagName("center_latitude").item(0));
      map_ctr_lng = getXMLVar(listingsXmlData.getElementsByTagName("center_longitude").item(0));
      map_left_top_x = getXMLVar(listingsXmlData.getElementsByTagName("left_top_x").item(0));
      map_left_top_y = getXMLVar(listingsXmlData.getElementsByTagName("left_top_y").item(0));
      map_right_bottom_x = getXMLVar(listingsXmlData.getElementsByTagName("right_bottom_x").item(0));
      map_right_bottom_y = getXMLVar(listingsXmlData.getElementsByTagName("right_bottom_y").item(0));
    }

    for (var i=0; i<listings.length; i++) {
      listings_array[i] = new listing_obj(listings.item(i));
    }

    document.getElementById("show_loading").style.display = "none";
    create_lnav();
    if(show_type == "Map"){
      if(init_map_data==false){
        map_zoom_level = getZoomLevel();
      }
      updateMap();
      showMapBlock(true);
      if(is_ld_show==false){
        mapInfoBlock();
      }
      init_map_data = true;
      showNotesBlock(true,show_type);
    } else if (show_type == "List" || show_type == ""){
      updateList();
      showListBlock(true);
    }
    initialize = true;
  }

  function updateListingData(xd,num) {
    curlistingXmlData = xd;
    current_listing = curlistingXmlData.getElementsByTagName("listing").item(0);
    for(var i=0;i<data_to_parse.length;i++){
      if(current_listing.getElementsByTagName(data_to_parse[i]).item(0) && current_listing.getElementsByTagName(data_to_parse[i]).item(0).firstChild){
        if(current_listing.getElementsByTagName(data_to_parse[i]).item(0).firstChild.data!=""){
          listings_array[num][data_to_parse[i]] = current_listing.getElementsByTagName(data_to_parse[i]).item(0).firstChild.data;
        }
      }
    }
    listings_array[num].fullData = true;
    mapInfoBlock("details",num);
  }

  function createMarker(point, number) {
    var icon_num = 0;
    var marker_bd_prefix = 0;
    if(listings_array[number].bedrooms!=""){
      if(listings_array[number].bedrooms>=5 || listings_array[number].bedrooms=="6+"){
        marker_bd_prefix = 5;
      } else if(listings_array[number].bedrooms>=4){
        marker_bd_prefix = 4;
      } else if(listings_array[number].bedrooms>=3){
        marker_bd_prefix = 3;
      } else if(listings_array[number].bedrooms>=2){
        marker_bd_prefix = 2;
      } else if(listings_array[number].bedrooms>=1){
        marker_bd_prefix = 1;
      } else if(listings_array[number].bedrooms="Studio"){
        marker_bd_prefix = "S";
      } 
    }
    var icon_num = getIconID("i_s1pt0b"+marker_bd_prefix+".png");
    var marker = new GPMarker(point, icons_lib[icon_num], number);
    // Show this marker's index in the info window when it is clicked
    var html = ""+
               "<table width='350'>"+
               "<tr>"+
               "  <td><a href='javascript:showDetails(\""+listings_array[number].pid+"\",\""+listings_array[number].mls+"\");'><img src='"+listings_array[number].photo+"' width='96' border='0'></a></td>"+
               "  <td class='d' valign='top'>"+
               "    <b>" + listings_array[number].lclass + "</b><br>"+
               "    <b>Price</b>: " + listings_array[number].price + "<br>"+
               "    <b>Bd/Ba</b>: " + listings_array[number].bedrooms + "/" + listings_array[number].bathrooms + "<br>"+
               "    <b>Sqft/Lot</b>: " + listings_array[number].square_feet + "/" + listings_array[number].lot_size + "<br>"+
               "    <b>Address</b>: "+listings_array[number].address+"<br>"+
               "  </td>"+
               "</tr>"+
               "</table>";
    return marker;
  }

  function create_lnav() {
    var nav = document.getElementById("top_right_box");
    var nav2 = document.getElementById("top_right_box2");
    if(abs_end>total_listings){
      abs_end = total_listings;
    }
    var s = "";
        if(page_current>0){
          s += "<a href='#' onclick='javascript:goLnav("+prev_page+")'>&#171;Previous</a>";
        } else {
          s += "<span style='color:#808080;'>&#171;Previous</span>";
        }
//alert('max_results_exceeded!!!');
        if(max_results_exceeded=="1"){
          var total_listings_add = "<a href='#max_search_results_exceeded_text' style='color:#ff0000;text-decoration:none;'>*</a>";
        } else {
          var total_listings_add = "";
        }
        s += "&#160;<b>"+abs_begin+" - "+abs_end+" from "+total_listings+total_listings_add+"</b>&#160;";
        if(page_current<(total_pages-1)){
          s += "<a href='#' onclick='javascript:goLnav("+next_page+")'>Next&#187;</a>";
        } else {
          s += "<span style='color:#808080;'>Next&#187;</span>";
        }
        s += "<img src='http://isvr.net/p.gif' width='5' height='1'/><br/><img src='http://isvr.net/p.gif' width='1' height='3'/>";
    nav.innerHTML = "";
    nav.innerHTML = s;
    var s2 = ""+
             "<table width='600' cellpadding='0' cellspacing='0'>"+
             "<tr bgcolor='#EDEDED'>"+
             "  <td height='24' class='d'><img src='http://isvr.net/p.gif' width='1' height='2'/><br>&#160;&#160;&#160;&#160;<b>Total: "+total_listings+"</b></td>"+
             "  <td align='right' class='d'><img src='http://isvr.net/p.gif' width='1' height='2'/><br>"+s+"</td>"+
             "</tr>"+
             "<tr><td colspan='2' bgcolor='#A5A2A5'><img src='http://isvr.net/p.gif' width='1' height='1'/></td></tr>"+
             "</table>";
    nav2.innerHTML = "";
    nav2.innerHTML = s2;
  }

  function initIcon(url_icon,url_shadow){
    var icon = new GIcon();
    icon.image = url_icon;
    icon.iconSize = new GSize(25, 25);
    icon.iconAnchor = new GPoint(6, 20);
    icon.infoWindowAnchor = new GPoint(5, 1);
    return icon;
  }

  function initIconLib(){
    icons_lib[0] = initIcon("http://isvr.net/maps/i_s1pt0b0.png");
    icons_lib[1] = initIcon("http://isvr.net/maps/i_s1pt0b1.png");
    icons_lib[2] = initIcon("http://isvr.net/maps/i_s1pt0b2.png");
    icons_lib[3] = initIcon("http://isvr.net/maps/i_s1pt0b3.png");
    icons_lib[4] = initIcon("http://isvr.net/maps/i_s1pt0b4.png");
    icons_lib[5] = initIcon("http://isvr.net/maps/i_s1pt0b5.png");
    icons_lib[6] = initIcon("http://isvr.net/maps/i_s1pt0bS.png");
  }

  if(window.GBrowserIsCompatible){
    initIconLib();
  }