fw.maps=new Object;fw.maps.init=function(){fw.loadCSS("/css/plugins/maps.css");if(!fw.session.location){fw.session.location=new Object}$("#mappanel a.map").live("click",function(){fw.showLoader();fw.maps.toggleMap();return false});$("#mappanel a.center").live("click",function(){fw.showLoader();fw.maps.toggleCenter();return false});$("a.streetview").live("click",function(){fw.maps.toggleStreetView($(this));return false});fw.maps.restoreViewState();$("#map_zipcode").live("keyup",function(b){if((b.keyCode>=46&&b.keyCode<=57)||(b.keyCode>=96&&b.keyCode<=105)||(b.keyCode==8||b.keyCode==88)){var a=$(this).attr("value")}return false});if(fw.session.location&&fw.session.location.zipcode){$("#map_zipcode").attr("value",fw.session.location.zipcode)}if($("#map").length){fw.maps.showMap()}$("#size").live("click",function(){fw.maps.toggleSize()})};fw.maps.showMap=function(){fw.maps.map=new google.maps.Map2(document.getElementById("map"));var c=parseFloat(fw.session.location.latitude);var b=parseFloat(fw.session.location.longitude);if(!c){c=40.313;b=-95.273}fw.maps.pin=new google.maps.LatLng(c,b);if(!fw.session.toggle){fw.session.toggle=new Object}if(fw.session.location&&fw.session.location.zipcode){var a=12}else{var a=3}fw.maps.ui=fw.maps.map.getDefaultUI();fw.maps.ui.controls.maptypecontrol=false;fw.maps.ui.controls.menumaptypecontrol=false;fw.maps.ui.keyboard=false;fw.maps.ui.zoom.scrollwheel=false;fw.maps.map.setUI(fw.maps.ui);fw.maps.showPins()};fw.maps.toggleMap=function(b,a){$.get("/toggle/map/",function(c){$("#eyecatcher").html(c);if($("ul#buttons_small").length){fw.eyecatcher.init()}fw.hideLoader();$("#mappanel").show();if($("#map").length){if(b&&a){fw.maps[b](a);fw.reload()}else{$("#mappanel").show();fw.maps.showMap()}}})};fw.maps.toggleCenter=function(){var center=fw.maps.map.getCenter().toString();var latitude=center.match(/\(([^,]+)/)[1];var longitude=center.match(/,\s*([^)]+)/)[1];$.get("/toggle/center/"+latitude+"/"+longitude,function(){$.get("/nearby/json/spot",function(data){var data=data?eval(data)[0]:false;if(!data){return fw.hideLoader()}var zipcode=data.Zipcode.zipcode;var matches=location.href.match(/\/find\/\w+\//);var radius=fw.session.toggle.radius?fw.session.toggle.radius:"20miles";if(!matches){var href="/find/all/zipcode:"+zipcode+"/radius:"+radius;return location.replace(href)}else{var href=matches[0]+"zipcode:"+zipcode+"/radius:"+radius;return location.replace(href)}})})};fw.maps.toggleStreetView=function(a){fw.showLoader();a.removeClass("active");if(!$("#map").length){fw.maps.toggleMap("toggleStreetView",a);return false}if(!fw.session.toggle){fw.session.toggle=new Object}if(fw.session.toggle&&fw.session.toggle.streetview&&fw.session.toggle.streetview==="on"&&a.parent().attr("id")==="mappanel"){fw.session.toggle.streetview="off";$("#size").show();fw.maps.showMap();fw.hideLoader()}else{var c;var d=180;var e=0;var b=0;fw.session.toggle.mapcenter=true;if(a.parent().attr("id")==="mappanel"){var g=fw.maps.map.getCenter().toString();var h=parseFloat(g.match(/\(([^,]+)/)[1]);var f=parseFloat(g.match(/,\s*([^)]+)/)[1])}else{if(a.parents("#multipin").length){var h=parseFloat(a.parent().next().find("span.latitude").html());var f=parseFloat(a.parent().next().find("span.longitude").html())}else{var h=parseFloat(a.parents(".widget, #mapinfo").find("span.latitude").html());var f=parseFloat(a.parents(".widget, #mapinfo").find("span.longitude").html())}}$("#size").hide();c=new GStreetviewPanorama(document.getElementById("map"));c.setLocationAndPOV(new GLatLng(h,f),{yaw:d,pitch:e,zoom:b});fw.session.location.latitude=h;fw.session.location.longitude=f;fw.session.toggle.streetview="on";setTimeout(function(){$("#map span.invalid").remove();if(!$("embed[id^=panoflash], object[id^=panoflash]").length){$("#map").append('<span class="invalid inplace">'+fw.session.translations.no_street_view+"</span>")}else{$("#mappanel a.streetview").addClass("active")}},4000);fw.hideLoader()}};fw.maps.setZipcode=function(zipcode){fw.showLoader();var zipcode=parseInt(zipcode);if(isNaN(zipcode)){fw.hideLoader();return false}if(!$("#map").length){fw.maps.toggleMap()}fw.maps.changeSearchLinks();$.get("/toggle/zipcode/"+zipcode,function(data){var data=data?eval(data)[0]:false;if(data.status&&data.status==="error"){$("#map_zipcode").addClass("invalid")}else{$("#map_zipcode").removeClass("invalid");var matches=location.href.match(/\/find\/\w+\//);var radius=fw.session.toggle.radius?fw.session.toggle.radius:"20miles";if(!matches){if(!zipcode){var href="/find/all/";return location.replace(href)}else{var href="/find/all/zipcode:"+zipcode+"/radius:"+radius;return location.replace(href)}}else{if(!zipcode){var href=matches[0];return location.replace(href)}else{var href=matches[0]+"zipcode:"+zipcode+"/radius:"+radius;return location.replace(href)}}}})};fw.maps.restoreViewState=function(){$("#mappanel").show();$("#searchradius").show();$("#map").css({background:"none"})};fw.maps.renderPin=function(e,k){var j=e.split(/x/);var b=new google.maps.LatLng(j[0],j[1]);if(k[0].Topic){var g="topic";var f="topics";var i="Click to display topic details";var c=k[0].Topic.url}else{if(k[0].Work){var g="work";var f="works";var i="Click to display work details";var c=k[0].Work.url}else{if(k[0].Job){var g="job";var f="jobs";var i="Click to display job details";var c=k[0].Job.url}else{if(k[0].InterestedParty){var g="interested_party";var f="interested_parties";var i="Click to display company details";var c=k[0].InterestedParty.url}}}}var a=new GIcon(G_DEFAULT_ICON);a.iconSize=new GSize(28,28);a.imageMap=[0,0,28,0,28,28,0,28,0,0];var h=new GIcon(a);h.image="/img/ic_map_"+g+"_active.gif";h.shadow="/img/bg_"+g+"_shadow.png";var d=new GMarker(b,{icon:h,title:i});GEvent.addListener(d,"click",function(){fw.showLoader();$.get(c,function(l){d.openInfoWindowHtml(l);fw.maps.map.setCenter(b);fw.maps.bindInfoWindowEvents();fw.hideLoader()})});fw.maps.map.addOverlay(d);return b};fw.maps.renderMultiPin=function(e,j){var g=e.split(/x/);var b=new google.maps.LatLng(g[0],g[1]);var a=new GIcon(G_DEFAULT_ICON);a.iconSize=new GSize(38,38);a.shadowSize=new GSize(43,43);a.imageMap=[0,0,43,0,43,43,0,43,0,0];var f=new GIcon(a);f.image="/img/ic_map_multipin.png";f.shadow="/img/bg_multipin_shadow.png";var c=new GMarker(b,{icon:f,title:"More than one item found at this location"});var h={companies:"",jobs:"",topics:"",works:""};for(var d in j){if(j[d].InterestedParty){h.companies+=";"+j[d].InterestedParty.url}else{if(j[d].Work){h.works+=";"+j[d].Work.url}else{if(j[d].Topic){h.topics+=";"+j[d].Topic.url}else{if(j[d].Job){h.jobs+=";"+j[d].Job.url}}}}}GEvent.addListener(c,"click",function(){$.post("/multipin/",h,function(i){c.openInfoWindowHtml(i);fw.maps.map.setCenter(b);fw.maps.bindInfoWindowEvents()})});fw.maps.map.addOverlay(c);return b};fw.maps.bindInfoWindowEvents=function(){var a=setTimeout(function(){$("#mapinfo a.quicklist.add, #multipin a.quicklist.add").click(function(){fw.quicklist.fireSaveRequest(this);$(this).parent().hide().addClass("hidden");return false});$("#mapinfo ul.rating a, #multipin ul.rating a").click(function(){fw.rate.fireRating($(this));$(this).unbind("click");return false});$("#mapinfo a.streetview").click(function(){fw.maps.toggleStreetView($(this));return false})},1000)};fw.maps.showPins=function(){fw.maps.map.clearOverlays();if(fw.session.maps&&fw.session.maps.locations){for(var b in fw.session.maps.locations){if(fw.session.maps.locations[b].length>1){var a=fw.maps.renderMultiPin(b,fw.session.maps.locations[b])}else{var a=fw.maps.renderPin(b,fw.session.maps.locations[b])}}fw.maps.map.setCenter(new google.maps.LatLng(60,-32),2)}};fw.maps.toggleSize=function(){if($("#map").height()===200){$("#map").height(420);$.get("/toggle/map/big");fw.maps.showMap()}else{$("#map").height(200);$.get("/toggle/map/small");fw.maps.showMap()}};fw.maps.changeSearchLinks=function(){var a=$("#map_zipcode").attr("value");var b=(fw.session.toggle&&fw.session.toggle.radius)?fw.session.toggle.radius:"20miles";$("#search div.header a, a.deeplink, .searchpagination a").each(function(){this.href=this.href.replace(/zipcode:\d+/,"zipcode:"+a);this.href=this.href.replace(/radius:[^\/]+/,"radius:"+b)})};