var load = true; var map, popupMsg, contextMenu, infowindow, prev_center, mode; var pref; var isGeocoding = 0; var popupVisible = false; var lock_nuvoletta = false; var v_nodes = new Array(); var v_nodes_new = new Array(); var v_labels = new Array(); var v_group = new Array(); var isOnGroup = false; var zoom, prev_zoom; var marker_clicked, gdir; var map_size = "small"; var map_toggle = "normal"; var opacity = 80; var iconXsize = 32; var iconYsize = 32; var i18n = new Array(2); i18n[0] = new Array(); i18n[1] = new Array(); $.ajax({ type: "GET", url: "http://www.mappare.com/cgi-bin/1.5/get_trans_js", data: "lang=" + getLang(), async: false, success: function(response){ var source = new Array(); var lang = new Array(); var records = response.split('\n'); var fields; source.push("source"); lang.push(getLang()); for (var i=1; i<records.length; i++) { fields = records[i].split(';'); source.push(fields[0]); lang.push(fields[1]);}
i18n[0] = source; i18n[1] = lang;}
}); var reasons = []; reasons[G_GEO_SUCCESS] = t("success", getLang()); reasons[G_GEO_MISSING_ADDRESS] = t("missing_address", getLang()); reasons[G_GEO_UNKNOWN_ADDRESS] = t("unknown_address", getLang()); reasons[G_GEO_UNAVAILABLE_ADDRESS]= t("indirizzo_non_disponibile", getLang()); reasons[G_GEO_BAD_KEY] = t("bad_key", getLang()); reasons[G_GEO_TOO_MANY_QUERIES] = t("too_queries", getLang()); reasons[G_GEO_SERVER_ERROR] = t("server_error", getLang()); $(document).ready(function(){ $("#btnControlMap").attr("src", "/images/pulsantiera/icona_filtri_off.gif"); $("#txtLoc").val(t("ins_loc", getLang())); $("#txtDa").val(t("prezzo_min", getLang())); $("#txtA").val(t("prezzo_max", getLang())); $("#txtCercaLuogo").val(t("cerca_luogo", getLang())); $("#toggleSearch").toggle( function () { $("#advSearch").toggle(); $("#basicSearch").toggle(); $(this).html("&laquo;  " + t("torna_ric_im", getLang()));}, function () { $("#advSearch").toggle(); $("#basicSearch").toggle(); $(this).html(t("passa_ric_av", getLang()) + " &raquo;");} ); $("#txtTipo").bind("change", function(){ if ($("#txtLoc").val() == "") { $("#txtLoc").val(t("ins_loc", getLang()));}
}); $("#txtCont").bind("change", function(){ if ($("#txtLoc").val() == "") { $("#txtLoc").val(t("ins_loc", getLang()));}
}); $("#txtCercaLuogo").bind("click", function(){ if ($(this).val() == t("cerca_luogo", getLang())) { $(this).val("");}
}); $("#txtLoc").bind("click", function(){ if ($(this).val() == t("ins_loc", getLang())) { $(this).val("");}
}); $("#txtDa").bind("click", function(){ if ($(this).val() == t("prezzo_min", getLang())) { $(this).val("");}
}); $("#txtA").bind("click", function(){ if ($(this).val() == t("prezzo_max", getLang())) { $(this).val("");}
}); $("#folderLinkTip").toggle( function () { $("#folderTreeTip").slideToggle("fast"); $("#imgTip").attr("src", "/files/triangle_h.gif");}, function () { $("#folderTreeTip").slideToggle("fast"); $("#imgTip").attr("src", "/files/triangle_v.gif");} ); $("#folderLinkCont").toggle( function () { $("#folderTreeCont").slideToggle("fast"); $("#imgCont").attr("src", "/files/triangle_h.gif");}, function () { $("#folderTreeCont").slideToggle("fast"); $("#imgCont").attr("src", "/files/triangle_v.gif");} ); $("#folderLinkPre").toggle( function () { $("#folderTreePre").slideToggle("fast"); $("#imgPre").attr("src", "/files/triangle_h.gif");}, function () { $("#folderTreePre").slideToggle("fast"); $("#imgPre").attr("src", "/files/triangle_v.gif");} ); $("#seeAll").toggle( function () { $("#moreTip").slideToggle("fast"); $(this).html(t("vedi_pochi", getLang())); $("#imgseeall").attr("src", "/images/apridiv.gif");}, function () { $("#moreTip").slideToggle("fast"); $(this).html(t("vedi_tutti", getLang())); $("#imgseeall").attr("src", "/images/chiudidiv.gif");} ); $("#btnMainView").hover( function () { $(this).attr("src", "/images/pulsantiera/icona_home_on.gif"); $("#rif_icon_home").attr("src", "/images/pulsantiera/rif_icona_home_on.gif");}, function () { $(this).attr("src", "/images/pulsantiera/icona_home_off.gif"); $("#rif_icon_home").attr("src", "/images/pulsantiera/rif_icona_home_off.gif");} ); $("#btnWorldView").hover( function () { $(this).attr("src", "/images/pulsantiera/icona_globo_on.gif"); $("#rif_icon_globo").attr("src", "/images/pulsantiera/rif_icona_globo_on.gif");}, function () { $(this).attr("src", "/images/pulsantiera/icona_globo_off.gif"); $("#rif_icon_globo").attr("src", "/images/pulsantiera/rif_icona_globo_off.gif");} ); $("#btnToggleMap").bind("click", function(){ if (map_toggle == "normal") { $("#map").slideToggle("slow"); $("#mappa_home_left").slideToggle("slow"); $("#mappa_home_right").slideToggle("slow"); $(this).attr("src", "/images/pulsantiera/icona_frecciagiu_off.gif"); map_toggle = "collapsed";} else { $("#map").slideToggle("slow"); $("#mappa_home_left").slideToggle("slow"); $("#mappa_home_right").slideToggle("slow"); $(this).attr("src", "/images/pulsantiera/icona_frecciasu_off.gif"); map_toggle = "normal";}
}); $("#btnToggleMap").hover( function () { if (map_toggle == "normal") { $(this).attr("src", "/images/pulsantiera/icona_frecciasu_on.gif"); $("#rif_icon_freccia").attr("src", "/images/pulsantiera/rif_icona_frecciasu_on.gif");} else { $(this).attr("src", "/images/pulsantiera/icona_frecciagiu_on.gif"); $("#rif_icon_freccia").attr("src", "/images/pulsantiera/rif_icona_frecciagiu_on.gif");}
}, function () { if (map_toggle == "normal") { $(this).attr("src", "/images/pulsantiera/icona_frecciasu_off.gif"); $("#rif_icon_freccia").attr("src", "/images/pulsantiera/rif_icona_frecciasu_off.gif");} else { $(this).attr("src", "/images/pulsantiera/icona_frecciagiu_off.gif"); $("#rif_icon_freccia").attr("src", "/images/pulsantiera/rif_icona_frecciagiu_off.gif");}
} ); $("#btnEnlargeMap").bind("click", function(){ if (map_size == "small") { if (map_toggle == "collapsed") { $("#map").show(); $("#mappa_home_left").show(); $("#mappa_home_right").show(); $("#btnToggleMap").attr("src", "/images/pulsantiera/icona_frecciasu_off.gif"); map_toggle = "normal";}
prev_center = map.getCenter(); var height = 0; if (self.innerHeight) { height = self.innerHeight }
else { height = document.documentElement.clientHeight }
height -= 210; $(this).attr("src", "/images/pulsantiera/icona_ripristina_off.gif"); $("#map").css("height", (255+(height-255)) +"px"); $("#mappa_home_left").css("height", (264+(height-264)) +"px"); $("#mappa_home_right").css("height", (264+(height-264)) +"px"); map.checkResize(); map.setCenter(prev_center); map_size = "large";} else { prev_center = map.getCenter(); $(this).attr("src", "/images/pulsantiera/icona_ingrandisci_off.gif"); $("#map").css("height", "255px"); $("#mappa_home_left").css("height", "264px"); $("#mappa_home_right").css("height", "264px"); map.checkResize(); map.setCenter(prev_center); map_size = "small";}
}); $("#btnEnlargeMap").hover( function () { if (map_size == "small") { $(this).attr("src", "/images/pulsantiera/icona_ingrandisci_on.gif"); $("#rif_icon_ingr").attr("src", "/images/pulsantiera/rif_icona_ingrandisci_on.gif");} else { $(this).attr("src", "/images/pulsantiera/icona_ripristina_on.gif"); $("#rif_icon_ingr").attr("src", "/images/pulsantiera/rif_icona_ripristina_on.gif");}
}, function () { if (map_size == "small") { $(this).attr("src", "/images/pulsantiera/icona_ingrandisci_off.gif"); $("#rif_icon_ingr").attr("src", "/images/pulsantiera/rif_icona_ingrandisci_off.gif");} else { $(this).attr("src", "/images/pulsantiera/icona_ripristina_off.gif"); $("#rif_icon_ingr").attr("src", "/images/pulsantiera/rif_icona_ripristina_off.gif");}
} ); $("#btnMainView").bind("click", function(){ map.checkResize(); map.setCenter(new GLatLng(43.086567, 12.349809), 4);}); $("#btnWorldView").bind("click", function(){ map.checkResize(); map.setCenter(new GLatLng(43.086567, 12.349809), 2);}); $("#btnControlMap").bind("click", function(){ if (mode != "all") { mode = "all"; $("#folderTreeTip input:checked").each(function() { $(this).removeAttr("checked");}); $("#folderTreeCont input:checked").each(function() { $(this).removeAttr("checked");}); $("#txtTipo").val("-1"); $("#txtCont").val("-1"); $("#txtLoc").val(t("ins_loc", getLang())); $("#txtDa").val(t("prezzo_min", getLang())); $("#txtA").val(t("prezzo_max", getLang())); $(this).attr("src", "/images/pulsantiera/icona_filtri_off.gif"); loadData();}
}); $("#CercaContainer img").bind("click", function(){ localize();}); $("#txtCercaLuogo").bind("click", function(){ $("#contextMenu").hide();}); $("#txtCercaLuogo").bind("keydown", function(e){ switch(e.keyCode) { case 13:
e.preventDefault(); localize(); break;}
}); $("#txtLoc").bind("keydown", function(e){ switch(e.keyCode) { case 13:
e.preventDefault(); search(); break;}
}); $("#btnSearch").bind("click", function(){ search();}); var opts_tooltip = { track: true, delay: 0, showURL: false, extraClass: "pretty", fixPNG: true, opacity: 0.95, top: -130, left: -60
}; $('#btnMainView').Tooltip(opts_tooltip); $('#btnWorldView').Tooltip(opts_tooltip); $('#btnToggleMap').Tooltip(opts_tooltip); $('#btnEnlargeMap').Tooltip(opts_tooltip); $('#btnControlMap').Tooltip(opts_tooltip); $('#btnCercaMap').Tooltip(opts_tooltip);}); function TriwebTypeControl() {}
TriwebTypeControl.prototype = new GControl(); var btn_typeMap = document.createElement("div"); var btn_typeSatellite = document.createElement("div"); var btn_typeHybrid = document.createElement("div"); TriwebTypeControl.prototype.initialize = function(map) { var container_type = document.createElement("div"); this.setControlStyle_(container_type); btn_typeMap.appendChild(document.createTextNode(t("mappa", getLang()))); btn_typeSatellite.appendChild(document.createTextNode(t("sat", getLang()))); btn_typeHybrid.appendChild(document.createTextNode(t("mista", getLang()))); container_type.appendChild(btn_typeMap); container_type.appendChild(btn_typeSatellite); container_type.appendChild(btn_typeHybrid); GEvent.addDomListener(btn_typeMap, "click", function() { map.setMapType(G_NORMAL_MAP); TriwebTypeControl.prototype.setActiveType_();}); GEvent.addDomListener(btn_typeSatellite, "click", function() { map.setMapType(G_SATELLITE_MAP); TriwebTypeControl.prototype.setActiveType_();}); GEvent.addDomListener(btn_typeHybrid, "click", function() { map.setMapType(G_HYBRID_MAP); TriwebTypeControl.prototype.setActiveType_();}); this.setActiveType_(); map.getContainer().appendChild(container_type); return container_type;}; TriwebTypeControl.prototype.setActiveType_ = function() { var type = map.getCurrentMapType(); if (type.getName().indexOf("Map") != -1) { this.setButtonStyleOn_(btn_typeMap); this.setButtonStyleOff_(btn_typeSatellite); this.setButtonStyleOff_(btn_typeHybrid);} else if (type.getName().indexOf("Sat") != -1) { this.setButtonStyleOff_(btn_typeMap); this.setButtonStyleOn_(btn_typeSatellite); this.setButtonStyleOff_(btn_typeHybrid);} else { this.setButtonStyleOff_(btn_typeMap); this.setButtonStyleOff_(btn_typeSatellite); this.setButtonStyleOn_(btn_typeHybrid);}
}; TriwebTypeControl.prototype.setControlStyle_ = function(control) { setOpacity(control, opacity);}; TriwebTypeControl.prototype.setButtonStyleOn_ = function(button) { button.className = "btnTypeOn";}; TriwebTypeControl.prototype.setButtonStyleOff_ = function(button) { button.className = "btnTypeOff";}; TriwebTypeControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(10, 10));}; function TriwebZoomControl() {}; TriwebZoomControl.prototype = new GControl(); var zoomOutImg = document.createElement("img"); var zoom_1 = document.createElement("img"); var zoom_2 = document.createElement("img"); var zoom_3 = document.createElement("img"); var zoom_4 = document.createElement("img"); var zoom_5 = document.createElement("img"); var zoom_6 = document.createElement("img"); var zoom_7 = document.createElement("img"); var zoom_8 = document.createElement("img"); var zoomInImg = document.createElement("img"); TriwebZoomControl.prototype.initialize = function(map) { var container_zoom = document.createElement("div"); this.setControlStyle_(container_zoom); this.setImageStyle_(zoomOutImg); this.setZoomImageStyle_(zoom_1); this.setZoomImageStyle_(zoom_2); this.setZoomImageStyle_(zoom_3); this.setZoomImageStyle_(zoom_4); this.setZoomImageStyle_(zoom_5); this.setZoomImageStyle_(zoom_6); this.setZoomImageStyle_(zoom_7); this.setZoomImageStyle_(zoom_8); this.setImageStyle_(zoomInImg); container_zoom.appendChild(zoomOutImg); container_zoom.appendChild(zoom_1); container_zoom.appendChild(zoom_2); container_zoom.appendChild(zoom_3); container_zoom.appendChild(zoom_4); container_zoom.appendChild(zoom_5); container_zoom.appendChild(zoom_6); container_zoom.appendChild(zoom_7); container_zoom.appendChild(zoom_8); container_zoom.appendChild(zoomInImg); GEvent.addDomListener(zoomOutImg, "click", function() { map.zoomOut(); TriwebZoomControl.prototype.setActiveZoom_();}); GEvent.addDomListener(zoom_1, "click", function() { map.setZoom(2); TriwebZoomControl.prototype.setActiveZoom_();}); GEvent.addDomListener(zoom_2, "click", function() { map.setZoom(4); TriwebZoomControl.prototype.setActiveZoom_();}); GEvent.addDomListener(zoom_3, "click", function() { map.setZoom(6); TriwebZoomControl.prototype.setActiveZoom_();}); GEvent.addDomListener(zoom_4, "click", function() { map.setZoom(8); TriwebZoomControl.prototype.setActiveZoom_();}); GEvent.addDomListener(zoom_5, "click", function() { map.setZoom(10); TriwebZoomControl.prototype.setActiveZoom_();}); GEvent.addDomListener(zoom_6, "click", function() { map.setZoom(12); TriwebZoomControl.prototype.setActiveZoom_();}); GEvent.addDomListener(zoom_7, "click", function() { map.setZoom(14); TriwebZoomControl.prototype.setActiveZoom_();}); GEvent.addDomListener(zoom_8, "click", function() { map.setZoom(16); TriwebZoomControl.prototype.setActiveZoom_();}); GEvent.addDomListener(zoomInImg, "click", function() { map.zoomIn(); TriwebZoomControl.prototype.setActiveZoom_();}); zoomInImg.setAttribute('src','/images/map/zoom_in_control.jpg'); zoomOutImg.setAttribute('src','/images/map/zoom_out_control.jpg'); TriwebZoomControl.prototype.setActiveZoom_(); map.getContainer().appendChild(container_zoom); return container_zoom;}; TriwebZoomControl.prototype.getDefaultPosition = function() { return new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(10, 10));}; TriwebZoomControl.prototype.setControlStyle_ = function(control) { setOpacity(control, opacity); control.style.backgroundColor = "#fff"; if (navigator.userAgent.indexOf("MSIE") != -1) { control.style.padding = "3px 0px 3px 0px";} else { control.style.padding = "4px 0px 2px 0px";}
}; TriwebZoomControl.prototype.setImageStyle_ = function(image) { image.style.cursor = "pointer"; image.style.padding = "0px 4px 0px 4px";}; TriwebZoomControl.prototype.setZoomImageStyle_ = function(image) { image.style.cursor = "pointer"; image.style.padding = "0px 1px 0px 1px";}; TriwebZoomControl.prototype.setActiveZoom_ = function() { var zoom = map.getZoom(); if ((zoom > 0)&&(zoom < 3)) { zoom_1.setAttribute('src','/images/map/zoom_1on.jpg'); zoom_2.setAttribute('src','/images/map/zoom_2.jpg'); zoom_3.setAttribute('src','/images/map/zoom_3.jpg'); zoom_4.setAttribute('src','/images/map/zoom_4.jpg'); zoom_5.setAttribute('src','/images/map/zoom_5.jpg'); zoom_6.setAttribute('src','/images/map/zoom_6.jpg'); zoom_7.setAttribute('src','/images/map/zoom_7.jpg'); zoom_8.setAttribute('src','/images/map/zoom_8.jpg');} else if ((zoom > 2)&&(zoom < 5)) { zoom_1.setAttribute('src','/images/map/zoom_1on.jpg'); zoom_2.setAttribute('src','/images/map/zoom_2on.jpg'); zoom_3.setAttribute('src','/images/map/zoom_3.jpg'); zoom_4.setAttribute('src','/images/map/zoom_4.jpg'); zoom_5.setAttribute('src','/images/map/zoom_5.jpg'); zoom_6.setAttribute('src','/images/map/zoom_6.jpg'); zoom_7.setAttribute('src','/images/map/zoom_7.jpg'); zoom_8.setAttribute('src','/images/map/zoom_8.jpg');} else if ((zoom > 4)&&(zoom < 7)) { zoom_1.setAttribute('src','/images/map/zoom_1on.jpg'); zoom_2.setAttribute('src','/images/map/zoom_2on.jpg'); zoom_3.setAttribute('src','/images/map/zoom_3on.jpg'); zoom_4.setAttribute('src','/images/map/zoom_4.jpg'); zoom_5.setAttribute('src','/images/map/zoom_5.jpg'); zoom_6.setAttribute('src','/images/map/zoom_6.jpg'); zoom_7.setAttribute('src','/images/map/zoom_7.jpg'); zoom_8.setAttribute('src','/images/map/zoom_8.jpg');} else if ((zoom > 6)&&(zoom < 9)) { zoom_1.setAttribute('src','/images/map/zoom_1on.jpg'); zoom_2.setAttribute('src','/images/map/zoom_2on.jpg'); zoom_3.setAttribute('src','/images/map/zoom_3on.jpg'); zoom_4.setAttribute('src','/images/map/zoom_4on.jpg'); zoom_5.setAttribute('src','/images/map/zoom_5.jpg'); zoom_6.setAttribute('src','/images/map/zoom_6.jpg'); zoom_7.setAttribute('src','/images/map/zoom_7.jpg'); zoom_8.setAttribute('src','/images/map/zoom_8.jpg');} else if ((zoom > 8)&&(zoom < 11)) { zoom_1.setAttribute('src','/images/map/zoom_1on.jpg'); zoom_2.setAttribute('src','/images/map/zoom_2on.jpg'); zoom_3.setAttribute('src','/images/map/zoom_3on.jpg'); zoom_4.setAttribute('src','/images/map/zoom_4on.jpg'); zoom_5.setAttribute('src','/images/map/zoom_5on.jpg'); zoom_6.setAttribute('src','/images/map/zoom_6.jpg'); zoom_7.setAttribute('src','/images/map/zoom_7.jpg'); zoom_8.setAttribute('src','/images/map/zoom_8.jpg');} else if ((zoom > 10)&&(zoom < 13)) { zoom_1.setAttribute('src','/images/map/zoom_1on.jpg'); zoom_2.setAttribute('src','/images/map/zoom_2on.jpg'); zoom_3.setAttribute('src','/images/map/zoom_3on.jpg'); zoom_4.setAttribute('src','/images/map/zoom_4on.jpg'); zoom_5.setAttribute('src','/images/map/zoom_5on.jpg'); zoom_6.setAttribute('src','/images/map/zoom_6on.jpg'); zoom_7.setAttribute('src','/images/map/zoom_7.jpg'); zoom_8.setAttribute('src','/images/map/zoom_8.jpg');} else if ((zoom > 12)&&(zoom < 15)) { zoom_1.setAttribute('src','/images/map/zoom_1on.jpg'); zoom_2.setAttribute('src','/images/map/zoom_2on.jpg'); zoom_3.setAttribute('src','/images/map/zoom_3on.jpg'); zoom_4.setAttribute('src','/images/map/zoom_4on.jpg'); zoom_5.setAttribute('src','/images/map/zoom_5on.jpg'); zoom_6.setAttribute('src','/images/map/zoom_6on.jpg'); zoom_7.setAttribute('src','/images/map/zoom_7on.jpg'); zoom_8.setAttribute('src','/images/map/zoom_8.jpg');} else if ((zoom > 14)&&(zoom <= 17)) { zoom_1.setAttribute('src','/images/map/zoom_1on.jpg'); zoom_2.setAttribute('src','/images/map/zoom_2on.jpg'); zoom_3.setAttribute('src','/images/map/zoom_3on.jpg'); zoom_4.setAttribute('src','/images/map/zoom_4on.jpg'); zoom_5.setAttribute('src','/images/map/zoom_5on.jpg'); zoom_6.setAttribute('src','/images/map/zoom_6on.jpg'); zoom_7.setAttribute('src','/images/map/zoom_7on.jpg'); zoom_8.setAttribute('src','/images/map/zoom_8on.jpg');}
}; function getFilters() { var termt = ""; var termc = ""; var prezzo_min = ""; var prezzo_max = ""; if (mode == "adv") { $("#folderTreeTip input:checked").each(function() { termt += "&idtermt=" + $(this).val();}); $("#folderTreeCont input:checked").each(function() { termc += "&idtermc=" + $(this).val();}); if (($("#txtDa").val() != t("prezzo_min", getLang())) && ($("#txtDa").val() != "")) { prezzo_min = "&prezzomin=" + $("#txtDa").val();}
if (($("#txtA").val() != t("prezzo_max", getLang())) && ($("#txtA").val() != "")) { prezzo_max = "&prezzomax=" + $("#txtA").val();}
} else if (mode == "basic") { termt = $("#txtTipo").val()==-1 ? "" : "&idtermt=" + $("#txtTipo").val(); termc = $("#txtCont").val()==-1 ? "" : "&idtermc=" + $("#txtCont").val();} else if (mode == "all") { }
return termt + termc + prezzo_min + prezzo_max;}; function getTermtCode() { var termtCode = ""; if ($("#basicSearch").css("display") == "block") { termtCode = $("#txtTipo").val();} else { $("#folderTreeTip input:checked").each(function() { termtCode += $(this).val() + "|";}); termtCode = termtCode.substring(0,termtCode.length-1);}
return termtCode;}; function getTermcCode() { var termcCode = ""; if ($("#basicSearch").css("display") == "block") { termcCode = $("#txtCont").val();} else { $("#folderTreeCont input:checked").each(function() { termcCode += $(this).val() + "|";}); termcCode = termcCode.substring(0,termcCode.length-1);}
return termcCode;}; function getLang() { var url_array = document.location.href.split("/"); lang = url_array[3]; lang = lang || "it"; return lang;}; function getBounds() { var bounds = map.getBounds(); var ne = (bounds.getNorthEast().lat()) + "," + (bounds.getNorthEast().lng()); var sw = (bounds.getSouthWest().lat()) + "," + (bounds.getSouthWest().lng()); return "ne=" + ne + "&sw=" + sw;}; function clearMapOverlay() { for (var i=0; i<v_nodes.length; i++) { map.removeOverlay(v_nodes[i].marker);}
for (var i=0; i<v_labels.length; i++) { map.removeOverlay(v_labels[i].marker);}
v_nodes.length = 0; v_labels.length = 0;}; function loadData() { disableMap(); var request = GXmlHttp.create(); zoom = map.getZoom(); SCook2("cv", map.getCenter().lat() + "|" + map.getCenter().lng() + "|" + zoom); pref = GCook("pref"); if (zoom > 13) { $.ajax({ type: "GET", url: "http://www.mappare.com/cgi-bin/1.5/get_node2", data: getBounds() + "&lang=" + getLang() + getFilters(), success: function(response){ loadNodes(response); enableMap();}
});} else { $.ajax({ type: "GET", url: "http://www.mappare.com/cgi-bin/1.5/get_label", data: getBounds() + "&lang=" + getLang() + getFilters(), success: function(response){ loadLabels(response); enableMap();}
});}
}; function loadLabels(response) { clearMapOverlay(); var records = response.split('\n'); var fields, marker; var tot = 0; for (var i=1; i<records.length; i++) { fields = records[i].split(';'); marker = createLabel(fields[0], fields[1], fields[2]); v_labels.push(new label(fields[0], fields[1], fields[2], marker)); map.addOverlay(marker); tot += parseInt(fields[2], 10);}
$("#txtAnnTot").html("<h3>" + t("annunci", getLang()) + ": </h3><h2>" + tot + "</h2><img class='riflesso' src='files/images/it/riflesso_num_annunci.gif' />"); if ((records.length == 1)&&(isGeocoding == 2)) { isGeocoding = 0; popupMsg.innerHTML = "<div>" + "<div style='float:left;font-weight:bold'>" + t("no_match_found", getLang()) + "</div>" + "<div style='float:right'><a href='javascript:chiudiPopup();'>" + t("chiudi", getLang()) + "</a></div>" + "</div><br /><br />" + "Non ci sono annunci in questo luogo, <a href='/" + getLang() + "/richiesta_immobile'>clicca qui</a> per richiderlo alle agenzie"; setPopupVisible(); popupVisible = false;}
}; function existingNode(nid) { var exist = false; loop:
for (var i=0; i<v_nodes_new.length; i++) { if (nid == v_nodes_new[i].nid) { exist = true; break loop;}
}
return exist;}; function isInResponse(nid, response) { var present = false; var records = response.split('\n'); var fields; loop:
for (var i=1; i<records.length; i++) { fields = records[i].split(';'); if (nid == fields[1]) { present = true; break loop;}
}
return present;}; function loadNodes(response) { if ((prev_zoom <= 13)&&(zoom > 13)) { clearMapOverlay();}
var bounds = map.getBounds(); for (var i=0; i<v_nodes.length; i++) { var point = new GLatLng(v_nodes[i].lat, v_nodes[i].lon); if (bounds.containsLatLng(point) && (isInResponse(v_nodes[i].nid, response))) { v_nodes_new.push(new node(v_nodes[i].nid, v_nodes[i].lat, v_nodes[i].lon, v_nodes[i].marker));} else { map.removeOverlay(v_nodes[i].marker);}
}
var records = response.split('\n'); var fields, marker; for (var i=1; i<records.length; i++) { fields = records[i].split(';'); if (!existingNode(fields[1])) { marker = createMarker(fields[1], fields[2], fields[3]); if( !existingGroup(marker) ) { map.addOverlay(marker);}
v_nodes_new.push(new node(fields[1], fields[2], fields[3], marker));}
}
v_nodes = v_nodes_new.slice(); v_nodes_new.length = 0; $("#txtAnnTot").html("<h3>" + t("annunci", getLang()) + ": </h3><h2>" + v_nodes.length + "</h2><img class='riflesso' src='files/images/it/riflesso_num_annunci.gif' />"); if (v_nodes.length == 0) { if (isGeocoding == 1) { isGeocoding = 2; map.setZoom(12);}
}
}; function justMarked(marker) { var result = false; for(var i=0; i<v_nodes_new.length; i++) { if(v_nodes_new[i].marker.gerLatLng()==marker.getLatLng()) { result=true;}
}
return result;}
function isGroup(point) { group_html = ''; v_group.length = 0; var isgroup = false; for (var i=0; i<v_nodes.length; i++) { var p = new GLatLng(v_nodes[i].lat, v_nodes[i].lon); if ( p.equals(point) ) { v_group.push(new node(v_nodes[i].nid, v_nodes[i].lat, v_nodes[i].lon, v_nodes[i].marker)); if(i==0)
group_html += "nid=" + v_nodes[i].nid; else
group_html += "&nid=" + v_nodes[i].nid;}
}
if (v_group.length > 1) { isgroup = true;}
return isgroup;}; function inArea(point,p) { var result=false; var up = p.lat()+0.01; var down = p.lat()-0.01; var left = p.lng()-0.01; var right = p.lng()+0.01; if( (point.lng()>=left && point.lng()<=right) && (point.lat()<=up && point.lat()>=down) ) { result=true;}
return result;}
function existingGroup(marker) { var result = false; loop:
for (var i=0; i<v_nodes_new.length; i++) { var p = new GLatLng(v_nodes_new[i].lat, v_nodes_new[i].lon); if(p.equals(marker.getLatLng())){ result = true; break loop;}
}
return result;}
function myClick(i) { lock_nuvoletta = true; marker_clicked = v_nodes[i].marker; disableMap(); $.ajax({ type: "GET", url: "http://www.mappare.com/cgi-bin/1.5/get_nuvoletta", data: "nid=" + v_nodes[i].nid + "&lang=" + getLang(), success: function(response){ v_nodes[i].marker.openInfoWindowHtml(response); enableMap(); lock_nuvoletta = false;}
});}; function createMarker(nid, lat, lon) { var point = new GLatLng(lat, lon); var casaIcon = new GIcon(); casaIcon.iconSize = new GSize(iconXsize,iconYsize); casaIcon.shadowSize = new GSize(59,32); casaIcon.iconAnchor = new GPoint(16,32); casaIcon.infoWindowAnchor = new GPoint(16,0); casaIcon.image = "http://www.mappare.com/images/map/red_cloud_marker.png"; casaIcon.shadow = "http://www.mappare.com/images/map/shadow_cloud_marker.png"; var marker = new GMarker(point, {icon:casaIcon}); GEvent.addListener(marker, "click", function() { marker_clicked = marker; load = false; if (isGroup(point)) { $.ajax({ type: "GET", url: "http://www.mappare.com/cgi-bin/1.5/get_nuvoletta2", data: group_html + "&lang=" + getLang(), success: function(response){ marker.openInfoWindowHtml(response);}
});} else { $.ajax({ type: "GET", url: "http://www.mappare.com/cgi-bin/1.5/get_nuvoletta2", data: "nid=" + nid + "&lang=" + getLang(), success: function(response){ marker.openInfoWindowHtml(response);}
});}
}); return marker;}; function createLabel(lat, lon, totnodi) { var point = new GLatLng(lat, lon); var icon = new GIcon(); icon.image = "http://www.mappare.com/images/map/green_circle_marker.png"; icon.iconSize = new GSize(32, 32); icon.iconAnchor = new GPoint(16, 16); icon.infoWindowAnchor = new GPoint(25, 7); var opts = { "icon": icon, "labelClass": "markerLabel", "clickable": true, "labelText": totnodi, "labelOffset": new GSize(-16, -16)
}; var marker_label = new LabeledMarker(point, opts); GEvent.addListener(marker_label, "click", function() { myZoom(point);}); return marker_label;}; function node(nid, lat, lon, marker) { this.nid = nid; this.lat = lat; this.lon = lon; this.marker = marker;}; function label(lat, lon, totnodi, marker) { this.lat = lat; this.lon = lon; this.totnodi = totnodi; this.marker = marker;}; function group() { this.point; this.nodes;}
function localize() { isGeocoding = 1; var geo = new GClientGeocoder(); var localita = $("#txtCercaLuogo").val(); geo.getLocations(localita, function (result) { if (result.Status.code == G_GEO_SUCCESS) { if (1 == result.Placemark.length) { var p = result.Placemark[0].Point.coordinates; var point = new GLatLng(p[1],p[0]); map.setCenter(point, 14);} else { popupMsg.innerHTML = "<div>"; popupMsg.innerHTML += "<div style='float:left;font-weight:bold'>" + t("forse_cercavi", getLang()) + "</div>"; popupMsg.innerHTML += "<div style='float:right'><a href='javascript:chiudiPopup();'>" + t("chiudi", getLang()) + "</a></div>"; popupMsg.innerHTML += "</div><br /><ul>"; for (var i=0; i<result.Placemark.length; i++) { var p = result.Placemark[i].Point.coordinates; popupMsg.innerHTML += "<li class='leaf'><a href='javascript:place(" + p[1] + "," + p[0] + ")'>" + result.Placemark[i].address + "</a></li>";}
popupMsg.innerHTML += "</ul>"; setPopupVisible();}
} else { var reason = reasons[result.Status.code]; popupMsg.innerHTML = "<div>"; popupMsg.innerHTML += "<div style='float:left;font-weight:bold'>" + t("no_match_found", getLang()) + "</div>"; popupMsg.innerHTML += "<div style='float:right'><a href='javascript:chiudiPopup();'>" + t("chiudi", getLang()) + "</a></div>"; popupMsg.innerHTML += "</div><br /><br />" + reason; setPopupVisible();}
});}; function search() { mode = $("#basicSearch").css("display") == "block" ? "basic" : "adv"; if (mode == "adv") { loadData(); if (getFilters() != "") { $("#btnControlMap").attr("src", "/images/pulsantiera/icona_filtri_on.gif");} else { $("#btnControlMap").attr("src", "/images/pulsantiera/icona_filtri_off.gif"); mode = "all";}
} else { if (($("#txtLoc").val() != "")&&($("#txtLoc").val() != t("ins_loc", getLang()))) { isGeocoding = 1; var geo = new GClientGeocoder(); var localita = $("#txtLoc").val(); geo.getLocations(localita, function (result) { if (result.Status.code == G_GEO_SUCCESS) { if (1 == result.Placemark.length) { var p = result.Placemark[0].Point.coordinates; var point = new GLatLng(p[1],p[0]); map.setCenter(point, 14);} else { popupMsg.innerHTML = "<div>"; popupMsg.innerHTML += "<div style='float:left;font-weight:bold'>" + t("forse_cercavi", getLang()) + "</div>"; popupMsg.innerHTML += "<div style='float:right'><a href='javascript:chiudiPopup();'>" + t("chiudi", getLang()) + "</a></div>"; popupMsg.innerHTML += "</div><br /><ul>"; for (var i=0; i<result.Placemark.length; i++) { var p = result.Placemark[i].Point.coordinates; popupMsg.innerHTML += "<li class='leaf'><a href='javascript:place(" + p[1] + "," + p[0] + ")'>" + result.Placemark[i].address + "</a></li>";}
popupMsg.innerHTML += "</ul>"; setPopupVisible();}
} else { var reason = reasons[result.Status.code]; popupMsg.innerHTML = "<div>"; popupMsg.innerHTML += "<div style='float:left;font-weight:bold'>" + t("no_match_found", getLang()) + "</div>"; popupMsg.innerHTML += "<div style='float:right'><a href='javascript:chiudiPopup();'>" + t("chiudi", getLang()) + "</a></div>"; popupMsg.innerHTML += "</div><br /><br />" + reason; setPopupVisible();}
});} else { loadData();}
if (getFilters() != "") { $("#btnControlMap").attr("src", "/images/pulsantiera/icona_filtri_on.gif");} else { $("#btnControlMap").attr("src", "/images/pulsantiera/icona_filtri_off.gif"); mode = "all";}
}
}; function myZoom(point) { map.setCenter(point, map.getZoom() + 2);}; function loadPrevView() { var point; var cv = GCook("cv"); if (cv == "") { point = new GLatLng(43.086567, 12.349809); zoom = 4;} else { var cv2 = cv.split("|"); point = new GLatLng(parseFloat(cv2[0]), parseFloat(cv2[1])); zoom = parseInt(cv2[2], 10);}
var prevView = { point: point, zoom: zoom
}; return prevView;}; if (GBrowserIsCompatible()) { map = new GMap2(document.getElementById("map")); contextMenu = document.createElement("div"); contextMenu.id = "contextMenu"; contextMenu.style.display = "none"; contextMenu.style.background = "#fff"; contextMenu.style.border = "1px outset #ccc"; contextMenu.style.padding = "1px 1px 3px 1px"; contextMenu.innerHTML = "<div style='clear:both'><img src='/images/map/zoom_in.jpg' class='item' /><a href='javascript:zoomIn();'><div class='item'>" + t("aum_zoom", getLang()) + "</div></a></div>" + "<div style='clear:both'><img src='/images/map/zoom_out.jpg' class='item_sep' /><a href='javascript:zoomOut();'><div class='item'>" + t("rid_zoom", getLang()) + "</div></a></div>" + "<div style='clear:both; margin: 0px 1px 0px 1px; border-bottom: 1px solid #ccc'></div>" + "<div style='clear:both'><img src='/images/map/mappa_stradale.png' class='item' /><a href='javascript:vistaMappa();'><div class='item'>" + t("map_strad", getLang()) + "</div></a></div>" + "<div style='clear:both'><img src='/images/map/mappa_satellite.png' class='item' /><a href='javascript:vistaSatellite();'><div class='item'>" + t("foto_sat", getLang()) + "</div></a></div>" + "<div style='clear:both'><img src='/images/map/mappa_mista.png' class='item_sep' /><a href='javascript:vistaMista();'><div class='item''>" + t("vista_mista", getLang()) + "</div></a></div>" + "<div style='clear:both; margin: 0px 1px 0px 1px; border-bottom: 1px solid #ccc'></div>" + "<div style='clear:both'><img src='/images/pulsantiera/icona_home_off.gif' class='item' /><a href='javascript:zoomInizio();'><div class='item'>" + t("zoom_inizio", getLang()) + "</div></a></div>" + "<div style='clear:both'><img src='/images/pulsantiera/icona_globo_off.gif' class='item' /><a href='javascript:zoomGlobo();'><div class='item'>" + t("zoom_globo", getLang()) + "</div></a></div>" + "<div style='clear:both'><img src='/images/pulsantiera/icona_frecciasu_off.gif' class='item' /><a href='javascript:chiudiMappa();'><div class='item'>" + t("chiudi_mappa", getLang()) + "</div></a></div>" + "<div style='clear:both'><img src='/images/pulsantiera/icona_ingrandisci_off.gif' class='item' /><a href='javascript:ingrandisciMappa();'><div class='item'>" + t("ingr_mappa", getLang()) + "</div></a></div>"; setOpacity(contextMenu, parseInt(opacity)+10); map.getContainer().appendChild(contextMenu); overlay = document.createElement("div"); overlay.id = "overlay"; overlay.style.backgroundColor = "#ffffff"; overlay.style.display = "none"; setOpacity(overlay, 85); loader = document.createElement("div"); loader.id = "loader"; loader.style.textAlign = "center"; loader.style.display = "none"; loader.style.color = "#999999"; loader.style.zIndex = "5000"; loader.innerHTML = "<img src='/images/map/loader.gif' /><br /><br />Mappare.com"; map.getContainer().appendChild(loader); map.getContainer().appendChild(overlay); popupMsg = document.createElement("div"); popupMsg.id = "popupMsg"; popupMsg.style.background = "#fff"; popupMsg.style.borderTop = "1px solid #ddd"; popupMsg.style.borderLeft = "1px solid #ddd"; popupMsg.style.borderRight = "1px solid #999"; popupMsg.style.padding = "10px"; popupMsg.style.display = "none"; setOpacity(popupMsg, parseInt(opacity)+10); map.getContainer().appendChild(popupMsg); var prevView = loadPrevView(); map.setCenter(prevView.point, prevView.zoom); map.enableContinuousZoom(); map.enableDoubleClickZoom(); map.addControl(new TriwebZoomControl()); map.addControl(new TriwebTypeControl()); infowindow = map.getInfoWindow(); loadData(); gdir = new GDirections(map); var poly; GEvent.addListener(gdir, "load", function() { if (poly) map.removeOverlay(poly); poly = gdir.getPolyline(); map.addOverlay(poly); popupMsg.innerHTML = "<div>" + "<div style='float:left;font-weight:bold'>" + t("info_percorso", getLang()) + "</div>" + "<div style='float:right'><a href='javascript:chiudiPopupPercorso();'>" + t("chiudi", getLang()) + "</a></div>" + "</div><br /><br />" + t("distance", getLang()) + ": " + gdir.getDistance().html + "<br />" + t("duration", getLang()) + ": " + gdir.getDuration().html; setPopupVisible();}); GEvent.addListener(gdir, "error", function() { var reasons_dir=[]; reasons_dir[G_GEO_SUCCESS] = t("success", getLang()); reasons_dir[G_GEO_MISSING_ADDRESS] = t("missing_address", getLang()); reasons_dir[G_GEO_UNKNOWN_ADDRESS] = t("unknown_address", getLang()); reasons_dir[G_GEO_UNAVAILABLE_ADDRESS]= t("indirizzo_non_disponibile", getLang()); reasons_dir[G_GEO_BAD_KEY] = t("bad_key", getLang()); reasons_dir[G_GEO_TOO_MANY_QUERIES] = t("too_queries", getLang()); reasons_dir[G_GEO_SERVER_ERROR] = t("server_error", getLang()); reasons_dir[G_GEO_BAD_REQUEST] = "A directions request could not be successfully parsed."; reasons_dir[G_GEO_MISSING_QUERY] = "No query was specified in the input."; reasons_dir[G_GEO_UNKNOWN_DIRECTIONS] = "The GDirections object could not compute directions between the points."; var code = gdir.getStatus().code; var reason = "Code " + code; if (reasons_dir[code]) { reason = reasons_dir[code]
}
popupMsg.innerHTML = "<div>" + "<div style='float:left;font-weight:bold'>" + t("no_directions_found", getLang()) + "</div>" + "<div style='float:right'><a href='javascript:chiudiPopup();'>" + t("chiudi", getLang()) + "</a></div>" + "</div><br /><br />" + reason; setPopupVisible();}); GEvent.addListener(map, "moveend", function() { $("#contextMenu").hide(); $("#popupMsg").hide(); prev_zoom = zoom; zoom = map.getZoom(); TriwebZoomControl.prototype.setActiveZoom_(); if (load) { if (!popupVisible) { loadData();}
}
if (popupVisible && isGeocoding) { clearMapOverlay(); setPopupVisible("normal");}
}); GEvent.addListener(map, "infowindowclose", function() { if (!lock_nuvoletta) { load = true;}
}); GEvent.addListener(map, "click", function() { $("#contextMenu").hide();}); GEvent.addListener(map,"singlerightclick", function(pixel, tile) { var x = pixel.x; var y = pixel.y; if (x > map.getSize().width - 125) { x = map.getSize().width - 125 }
if (y > map.getSize().height - 180) { y = map.getSize().height - 180 }
var posMenu = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y)); posMenu.apply(contextMenu); $("#contextMenu").fadeIn();});} else { alert("Le Google Maps API non sono compatibili con questo browser");}
function tracking() { var to_html = t("sadd", getLang()) + "<br />(Es: Via Francia, Magione, Perugia)<br /><form action='javascript:getDirections()'>" + "<input type='text' size=40 maxlength=40 name='saddr' id='saddr' value='' /><br><br>" + "<input value='" + t("Calcola distanza", getLang()) + "' type='submit'>" + "<input type='hidden' id='daddr' value='" + marker_clicked.getTitle() + "@" + marker_clicked.getLatLng().lat() + "," + marker_clicked.getLatLng().lng() + "'/>"; marker_clicked.openInfoWindowHtml(to_html);}; function getDirections() { var saddr = $("#saddr").val(); var daddr = $("#daddr").val(); dirInProgress = true; gdir.load("from: " + saddr + " to: " + daddr, {getPolyline:true});}; function wheelevent(e){ if (!e) e = window.event; if (e.preventDefault) e.preventDefault(); e.returnValue = false;}; function t(key, lang) { var trad = ""; for (var i=0; i < i18n[0].length; i++) { if (i18n[0][i] == key) { trad = i18n[1][i];}
}
return trad;}; function setPopupVisible(fade) { fade = fade || "fade"; popupVisible = true; var elWidth = 400; popupMsg.style.width = elWidth + "px"; var x = (map.getSize().width)/2 - (elWidth/2); var posPopup = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(x,-1)); posPopup.apply(popupMsg); if (fade == "fade") { $("#popupMsg").fadeIn();} else { $("#popupMsg").show();}
}; function chiudiPopupPercorso() { popupVisible = false; gdir.clear(); loadData(); $("#popupMsg").fadeOut();}; function chiudiPopup() { $("#popupMsg").fadeOut(); popupVisible = false;}; function place(lat, lng) { chiudiPopup(); var point = new GLatLng(lat, lng); map.setCenter(point, 14); contextMenu.style.display = "none";}; function setOpacity(element, opacity) { if (navigator.userAgent.indexOf("MSIE") != -1) { element.style.filter = "alpha(opacity=" + opacity + ")";} else { element.style.opacity = (opacity==100) ? "1" : "0." + opacity;}
}; function zoomIn() { map.zoomIn(); $("#contextMenu").fadeOut();}; function zoomOut() { map.zoomOut(); $("#contextMenu").fadeOut();}; function vistaMappa() { map.setMapType(G_NORMAL_MAP); TriwebTypeControl.prototype.setActiveType_(); $("#contextMenu").fadeOut();}; function vistaSatellite() { map.setMapType(G_SATELLITE_MAP); TriwebTypeControl.prototype.setActiveType_(); $("#contextMenu").fadeOut();}; function vistaMista() { map.setMapType(G_HYBRID_MAP); TriwebTypeControl.prototype.setActiveType_(); $("#contextMenu").fadeOut();}; function ingrandisciMappa() { if (navigator.userAgent.indexOf("MSIE") != -1) { var el = document.getElementById('btnEnlargeMap'); el.click();} else { $("#btnEnlargeMap").trigger("click");}
$("#contextMenu").fadeOut();}; function chiudiMappa() { if (navigator.userAgent.indexOf("MSIE") != -1) { var el = document.getElementById('btnToggleMap'); el.click();} else { $("#btnToggleMap").trigger("click");}
$("#contextMenu").fadeOut();}; function zoomGlobo() { if (navigator.userAgent.indexOf("MSIE") != -1) { var el = document.getElementById('btnWorldView'); el.click();} else { $("#btnWorldView").trigger("click");}
$("#contextMenu").fadeOut();}; function zoomInizio() { if (navigator.userAgent.indexOf("MSIE") != -1) { var el = document.getElementById('btnMainView'); el.click();} else { $("#btnMainView").trigger("click");}
$("#contextMenu").fadeOut();}; function disableMap() { var elWidth = 128; var elHeight = 160; var x = (map.getSize().width)/2 - (elWidth/2); var y = (map.getSize().height)/2 - (elHeight/2); var posLoader = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(x,y)); posLoader.apply(loader); $("#loader").fadeIn(); var posOverlay = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(0,0)); overlay.style.width = map.getSize().width + "px"; overlay.style.height = map.getSize().height + "px"; posOverlay.apply(overlay); overlay.style.display = "block";}; function enableMap() { $("#loader").fadeOut().hide(); overlay.style.display = "none";}; window.onunload = function() { GUnload();}; 
