var map;var centerPoint;var centerMarker;var mapOptions;String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"");};function CheckForm(b){if(b.search_zip.value!=""){var c=(/\d{5}(-\d{4})?/);var a=c.test(b.search_zip.value);if(!a){alert('"'+b.search_zip.value+'" is not a valid zip code');b.search_zip.focus();return false;}}else{if(b.search_city.value==""){alert("Please enter a city or zip code!");b.search_zip.focus();return false;}if(b.search_state.value==""){alert("Please select a state!");b.search_state.focus();return false;}}return true;}function showhide(a){if(document.getElementById){obj=document.getElementById(a);if(obj.style.display=="none"){obj.style.display="";}else{obj.style.display="none";}}}function hideinfo(){if(!document.getElementsByTagName&&!document.createElement&&!document.createTextNode){return;}var d=document.getElementsByTagName("span");for(var g=d.length-1;g>=0;g--){if(d[g].className=="render_info"){var a=/ at /;var c=/ dot /g;var h=document.createElement("a");var b=d[g].firstChild.nodeValue;b=b.replace(a,"@");b=b.replace(c,".");b=b.replace(a,"@");b=b.replace(c,".");h.setAttribute("href","mailto:"+b);h.appendChild(document.createTextNode(b));h.setAttribute("class","render_info");h.setAttribute("className","render_info");var f=d[g].parentNode;for(var e=0;e<f.childNodes.length;e++){if(f.childNodes[e]==d[g]){if(!f.replaceChild){return;}f.replaceChild(h,f.childNodes[e]);break;}}}}}function validateDate(a){var b="/^(?=\d)(?:(?:(?:(?:(?:0?[13578]|1[02])(/|-|.)31)\1|(?:(?:0?[1,3-9]|1[0-2])(/|-|.)(?:29|30)\2))(?:(?:1[6-9]|[2-9]\d)?\d{2})|(?:0?2(/|-|.)29\3(?:(?:(?:1[6-9]|[2-9]\d)?(?:0[48]|[2468][048]|[13579][26])|(?:(?:16|[2468][048]|[3579][26])00))))|(?:(?:0?[1-9])|(?:1[0-2]))(/|-|.)(?:0?[1-9]|1\d|2[0-8])\4(?:(?:1[6-9]|[2-9]\d)?\d{2}))($| (?=\d)))?(((0?[1-9]|1[012])(:[0-5]\d){0,2}( [AP]M))|([01]\d|2[0-3])(:[0-5]\d){1,2})?$/";if((a.value.match(b))&&(a.value!="")){return true;}else{return false;}}function toggleVehicleSearch(){$("#unit-sizes").hide();$("#sort-units").hide();$("#search-amenities").hide();$("#sort-vehicle-units").show();}function toggleUnitSearch(){$("#unit-sizes").show();$("#sort-units").show();$("#search-amenities").show();$("#sort-vehicle-units").hide();}function updateSearchText(){if(searchLocation!=null&&searchLocation.length>0){$("input#search_text").val(searchLocation);}}function updateSearchFields(){if(searchLocation!=null&&searchLocation.length>0){$("input#search_text").val(searchLocation);}if(searchType!=null&&searchType=="vehicle"){$("#radioUnit").attr("checked",false);$("#radioVehicle").attr("checked",true);if(orderVehicle!=null){var d="#order_vehicle"+order;$(d).attr("checked",true);}toggleVehicleSearch();}else{$("#radioUnit").attr("checked",true);$("#radioVehicle").attr("checked",false);if(order!=null){var d="#order_"+order;$(d).attr("checked",true);}if(sqft!=null){var e=[25,50,75,100,150,200,300];for(var c=0;c<e.length;c++){if(sqft==e[c]){var a="#sqft"+sqft;$(a).attr("checked",true);break;}}}if(amenities!=null&&amenities.length>0){for(var c=0;c<amenities.length;c++){var b=amenities[c];d="#checkbox_"+b;$(d).attr("checked",true);}}toggleUnitSearch();}}function initializeQtips(){$("#amenities_climate_controlled").qtip({content:'<span class="qtip_bold">Climate Controlled Storage</span><br /><br />Heated and cooled storage units. Best for long-term storage or storing sensitive items such as musical instruments or electronics.',show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});$("#amenities_drive_up").qtip({content:'<span class="qtip_bold">Drive Up Access</span><br /><br />Units with exterior doors. These allow you to back your vehicle up to the unit for easier unloading when you move in.',show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});$("#amenities_twenty_four_hour_access").qtip({content:'<span class="qtip_bold">24 Hour Access</span><br /><br />These locations allow you to access your storage unit 24 hours a day, even when the office is closed.',show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});$("#size0").qtip({content:'<span class="qtip_bold">All Unit Sizes</span><br /><br />Search for all unit sizes. Recommended default search.',show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});$("#size25").qtip({content:"<span class=\"qtip_bold\">5' x 5' Unit (25 ft&#178;).</span><br /><br />Small furniture &amp; boxes<br /><br />Size of small closet.<br />Good for chairs, cabinets, electronics, boxes.",show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});$("#size50").qtip({content:"<span class=\"qtip_bold\">5' x 10' Unit (50 ft&#178;).</span><br /><br />1 bedroom apartment or studio<br /><br />Size of large walk-in closet.<br />Good for mattress set, couch, dining room tables, chairs, boxes.",show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});$("#size75").qtip({content:"<span class=\"qtip_bold\">5' x 15' Unit (75 ft&#178;).</span><br /><br />1 bedroom apartment<br /><br />Size of small bedroom.<br />Good for large dining sets, desks, bainets, mattress set, washer/dryder.",show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});$("#size100").qtip({content:"<span class=\"qtip_bold\">10' x 10' Unit (100 ft&#178;).</span><br /><br />2 bedroom apartment<br /><br />Size of a large bedroom.<br />Good for bedroom sets, refrigerator, large drawers, multiple boxes.",show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});$("#size150").qtip({content:"<span class=\"qtip_bold\">10' x 15' Unit (150 ft&#178;).</span><br /><br />2-3 bedroom house or large apartment<br /><br />Size of small one car garage. Good for multiple bedroom sets, large appliances, smaller cars, boats, other vehicles, patio sets.",show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});$("#size200").qtip({content:"<span class=\"qtip_bold\">10' x 20' Unit (200 ft&#178;).</span><br /><br />4 bedroom house or full garage<br /><br />Size of standard one car garage. Good for multiple bedroom sets, trucks, trailers, large furniture items, mid-size vehicles, misellaneous items.",show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});$("#size300").qtip({content:"<span class=\"qtip_bold\">10' x 30' Unit (300 ft&#178;).</span><br /><br />5 bedroom house, large items<br /><br />Size of two car garages. Good for multiple bedroom sets, appliances, large furniture, patio sets, seasonal items.",show:"mouseover",hide:"mouseout",position:{corner:{target:"rightMiddle",tooltip:"leftMiddle"},adjust:{x:3}},style:{border:{width:4,color:"#b85555"},padding:10,background:"#F2F2F2",lineHeight:"16px",fontSize:"13px"}});}function initializeSearch(){initializeQtips();if(initializeMap!=undefined&&initializeMap==true){jQuery("#map-container").show();$(".sf_facility_listings tr").click(function(){var a=$(this).find("a").attr("href");if(a){window.location=a;}});initGoogleMap();}else{jQuery("#map-container").hide();}jQuery("#search-preloader").hide();}function initializeSearchNoQtip(){if(initializeMap!=undefined&&initializeMap==true){jQuery("#map-container").show();$(".sf_facility_listings tr").click(function(){var a=$(this).find("a").attr("href");if(a){window.location=a;}});initGoogleMap();}else{jQuery("#map-container").hide();}jQuery("#search-preloader").hide();}function initGoogleMap(){mapOptions={zoom:8,scrollwheel:false,mapTypeControl:false,navigationControl:{style:google.maps.NavigationControlStyle.DEFAULT},mapTypeId:google.maps.MapTypeId.ROADMAP};map=new google.maps.Map(document.getElementById("map-canvas"),mapOptions);centerPoint=new google.maps.LatLng(centerLatitude,centerLongitude);map.setCenter(centerPoint);var c=new google.maps.MarkerImage(CONFIG.baseUri+"/images/global/map-markers/location-marker.png",new google.maps.Size(19,19),new google.maps.Point(0,0),new google.maps.Point(0,0));centerMarker=new google.maps.Marker({position:centerPoint,icon:c,map:map,title:searchLocation,zIndex:100});var b=[];if(listings!=null){for(var a=0;a<listings.length;a++){b[a]=new google.maps.LatLng(listings[a].latitude,listings[a].longitude);markers[a]=createGoogleMapMarker(b[a],a);markers[a].setMap(map);}if(b.length>0){map.fitBounds(getBoundsForLatLngsSF(b,centerPoint));}}google.maps.event.addListener(map,"bounds_changed",function(){$("#infobox").remove();});}function createGoogleMapMarker(a,c,f){var d=CONFIG.baseUri+"/images/global/map-markers/red-pin.png";var g=CONFIG.baseUri+"/images/global/map-markers/green-pin.png";var e=new google.maps.MarkerImage(CONFIG.baseUri+"/images/global/map-markers/marker-shadow.png",new google.maps.Size(30,24),new google.maps.Point(0,0),new google.maps.Point(5,23));var b=new google.maps.Marker({position:a,icon:createMarkerIconSF(false,c),shadow:e,zIndex:200-c});google.maps.event.addListener(b,"click",function(){for(var h=0;h<listings.length;h++){markers[h].setZIndex(200-c);markers[h].setIcon(createMarkerIconSF(false,h));}$(".search-listing-facility-details").removeClass("selected");$("div[id='"+(c+1)+"'] .search-listing-facility-details").addClass("selected");b.setZIndex(210+c);b.setIcon(this,createMarkerIconSF(true,c));$("#infobox").remove();showInfoBoxSF(b,c);});google.maps.event.addListener(b,"mouseover",function(){if(!$("div[id='"+(c+1)+"'] .search-listing-facility-details").hasClass("selected")){b.setZIndex(200+c);b.setIcon(createMarkerIconSF(true,c));}$("#"+(c+1)+" img.search-listing-map-marker").attr("src",g);});google.maps.event.addListener(b,"mouseout",function(){if(!$("div[id='"+(c+1)+"'] .search-listing-facility-details").hasClass("selected")){b.setZIndex(200-c);b.setIcon(createMarkerIconSF(false,c));}$("#"+(c+1)+" img.search-listing-map-marker").attr("src",d);});return b;}function getBoundsForLatLngsSF(d,c){var b=new google.maps.LatLngBounds;for(var a=0;a<d.length;a++){b.extend(d[a]);}b.extend(c);return b;}function createMarkerIconSF(c,a){var d;if(c){d=CONFIG.baseUri+"/images/global/map-markers/green-pin.png";}else{d=CONFIG.baseUri+"/images/global/map-markers/red-pin.png";}var b=new google.maps.MarkerImage(d,new google.maps.Size(30,42),new google.maps.Point(0,0),new google.maps.Point(15,42));return b;}function showInfoBoxSF(h,i){var c=h.getMap();var a=c.getBounds();if(!a){return;}var o=c.getDiv();var g=o.offsetWidth;var k=o.offsetHeight;var m=a.toSpan();var n=m.lng();var f=m.lat();var l=n/g;var j=f/k;var d=(a.getNorthEast().lat()-h.getPosition().lat())/j;var e=(h.getPosition().lng()-a.getSouthWest().lng())/l;var b=document.createElement("div");$(b).css("top",(d-20)+"px");$(b).css("margin-left",(e-20)+"px");$(b).attr("id","infobox");$(b).append('<img src="http://www.google.com/intl/en_us/mapfiles/close.gif" class="close-button" />');$(b).append($("#infowindow-"+i).clone());$("#map-container").append(b);$("#infobox img.close-button").click(function(){$("#infobox").remove();});}
