var map,entries=[],def_entries=[];
function e(a,b,c,h,f){var d=a.length;c.idx=f+1;c.kind=h;entries[c.shortName]=c;a[d++]="<div id='e_"+c.shortName+"'>";a[d++]="<input type='checkbox' class='show_marker' id='c_"+c.shortName+"' value='"+c.shortName;if(c.def>0){a[d++]="' checked='checked";def_entries[def_entries.length]=c}a[d++]="'/><span class='label'>"+c.idx+"</span>";a[d++]=c.name;a[d++]="  (<a href='#' class='show_detail' rel='"+c.shortName+"'>more</a>)";a[d++]="</div>";d=b.length;b[d++]="<div class='desc' id='d_"+c.shortName+"'><a class='detailclose' href='#' rel='"+
c.shortName+"'><img src='images/close.gif' alt='Close'/></a>";b[d++]="<h2>"+c.name+"</h2>";b[d++]="<div class='address'>";b[d++]=c.address;b[d++]="<br/>";b[d++]=c.city+", "+c.state+" "+c.zip;b[d++]="<br/>";b[d++]="<b>Phone:</b> "+c.phone;b[d++]="</div>";b[d++]="<div class='detail'>";b[d++]=c.description;b[d++]="</div><div class='links'>";b[d++]=create_urls(c);b[d++]="</div></div>"}
function create_urls(a){var b=[];b[0]="<a href='#' class='showonmap mapshow' rel='"+a.shortName+"'>Show on Map</a>";if(a.homepage!="")b[b.length]="<a href='"+a.homepage+"'>Homepage</a>";if(a.reservation!="")b[b.length]="<a href='"+a.reservation+"'>Reservations</a>";return b.join(" | ")}
function t(a,b,c,h,f){f=f;for(var d=0;d<c.entries.length;d++){e(a,b,c.entries[d],h,f);f++}for(d=0;d<c.children.length;d++){a[a.length]="<div class='subcat'><h3>";a[a.length]=c.children[d].name;a[a.length]="</h3>";f=t(a,b,c.children[d],h,f);a[a.length]="</div>"}return f}
function create_marker(a){if(a.marker)a.marker.setMap(map);else{var b;b=a.kind=="inns"?"images/numeric/blue"+a.idx+".png":a.kind=="attractions"?"images/numeric/orange"+a.idx+".png":"images/numeric/green"+a.idx+".png";a.marker=new google.maps.Marker({position:new google.maps.LatLng(a.lat,a.lng),map:map,icon:b,title:a.name});a.infowindow=new google.maps.InfoWindow({content:"<div class='desc' style='width: 250px'>"+$("#d_"+a.shortName).html()+"</div>"})}google.maps.event.addListener(a.marker,"click",
function(){a.infowindow.open(map,a.marker)});google.maps.event.addListener(a.marker,"mouseover",function(){$("#e_"+a.shortName).addClass("highlight")});google.maps.event.addListener(a.marker,"mouseout",function(){$("#e_"+a.shortName).removeClass("highlight")})}function show_marker(){var a=entries[this.value];if($(this).is(":checked"))create_marker(a);else a.marker&&a.marker.setMap(null)}
function show_detail(){$(".desc").css("left","-9999px");$(this).attr("rel");var a=$(this).offset(),b=$("#d_"+$(this).attr("rel"));if(b.offset().left>0)b.css("left","-9999px");else{var c=a.left+$(this).width()-8;if(c>800)c-=c-800;b.css({top:a.top-(b.height()-40)+"px",left:c+"px"})}return false}
$(document).ready(function(){map=new google.maps.Map(document.getElementById("map_canvas"),{zoom:10,center:new google.maps.LatLng(42.20154734337157,-122.68675617980956),mapTypeId:google.maps.MapTypeId.ROADMAP});var a=[],b=[],c=[],h=[],f=[],d=[];$.getJSON("http://abbnmaps.appspot.com/map/index?cb=?",function(i){for(var g=0;g<i.inns.length;g++)e(a,h,i.inns[g],"inns",g);t(b,f,i.attractions,"attractions",0);t(c,d,i.restaurants,"restaurants",0);$("#loading").css("left","-9999px");$("#inns").append(a.join(""));
$("#attractions").append(b.join(""));$("#restaurants").append(c.join(""));$("#inns_desc").append(h.join(""));$("#attr_desc").append(f.join(""));$("#rest_desc").append(d.join(""));for(g=0;g<def_entries.length;g++)def_entries[g].def>0&&create_marker(def_entries[g]);$(".show_marker").click(show_marker);$(".show_detail").click(show_detail);$(".showonmap").click(function(){var j=entries[$(this).attr("rel")];$("#c_"+j.shortName).attr("checked",true);create_marker(j);return false});$(".detailclose").click(function(){$("#d_"+
$(this).attr("rel")).css("left","-9999px");return false})});$(".selectall").click(function(){$("#"+$(this).attr("rel")+" .show_marker").each(function(){if(!$(this).is(":checked")){create_marker(entries[this.value]);$(this).attr("checked",true)}});return false});$(".deselectall").click(function(){$("#"+$(this).attr("rel")+" .show_marker").each(function(){if($(this).is(":checked")){var i=entries[this.value];i.marker&&i.marker.setMap(null);$(this).attr("checked",false)}});return false})});

