ajax_php='php_functions.php';
fullscreen_mode=false;
var center_lat=44.894796;
var center_lng=-70.219116;
var default_zoom=9;
content_loading='<ul class="vert_submenu" id="loading"><li><img src="java/icons/ajax-loader.gif"/ class="sub_icon"><a href="#">Loading...</a></li></ul>';
$(document).ready(function(){
	var a="Search Keywords";
	if($('#search-text').val()=='')
	$('#search-text').val(a).addClass('placeHolder');
	$('#search-text').focus(function(){
		if(this.value==a){
			$(this).removeClass('placeHolder').val('')
		}
	}).blur(function(){
		if(this.value==''){
			$(this).addClass('placeHolder').val(a)
		}
	});
	$('#search').submit(function(){
		if($('#search-text').val()==a){
			$('#search-text').val('')
		}else{
			keyword_search($('#search-text').val())
		}
		return false
	})
});
$(document).ready(function(){
	var k='java/icons/toggle_minus_blue.png';
	var l='java/icons/toggle_plus_blue.png';
	function setupCategories(){
		var g={'action':'load_categories'};
		$('#navigation').empty();
		$.get(ajax_php,g,function(f){
			$('#navigation').append(f).fadeIn('fast',function(){
				categories={};
				var e=$('.main_nav');
				e.prepend('<img src="'+l+'" alt="collapse this section" class="nav_icon"/>');
				$(e).addClass('clickable').click(function(){
					var a=$(this).parent().find('ul');
					var b=$('img',this);
					toggleSrc=b.attr('src');
					if(toggleSrc==k){
						$(this).removeClass('currentpage');
						b.attr('src',l);
						a.slideUp('fast')
					}else{
						$(this).addClass('currentpage');
						b.attr('src',k);
						a.slideDown('fast')
					};
					var c=this.id;
					c=c.split('_');
					var d=c[1];
					if(!categories[d]){
						categories[d]=[];
						load_subnav(d,$(this))
					}
					return false
				})
			});
			$("#super_168").trigger("click")
		})
	};
	setupCategories();
	toggleOnBase='java/icons/toggle_on_';
	toggleOff='java/icons/toggle_off.png';
	$('body').click(function(a){
		if($(a.target).is('.sub_nav')){
			map.closeInfoWindow();
			var b=$(a.target);
			var c=b.attr('id');
			toggleGroup(c);
			d=b.parent();
			var d=$('img',d);
			toggleSrc=d.attr('src');
			var e=b.parent().parent().parent().find('.main_nav');
			var f=e.attr('id');
			f=f.split('_');
			var g=f[1];
			var h=toggleOnBase+g+".png";
			if(toggleSrc==h)d.attr('src',toggleOff);
			else d.attr('src',h);
			return false
		};
		if($(a.target).is('.sub_icon')){
			map.closeInfoWindow();
			var b=$(a.target).parent().find('.sub_nav');
			var c=b.attr('id');
			toggleGroup(c);
			var d=$(a.target);
			toggleSrc=d.attr('src');
			var e=b.parent().parent().parent().find('.main_nav');
			var f=e.attr('id');
			f=f.split('_');
			var g=f[1];
			var h=toggleOnBase+g+".png";
			if(toggleSrc==h)d.attr('src',toggleOff);
			else d.attr('src',h);
			return false
		}
	});
	var m="java/icons/indicate_full_";
	var n="java/icons/indicate_partial.jpg";
	var o="java/icons/indicate_none.png";
	update_indicators=function(){
		$('.main_nav').each(function(a){
			var b=$(this).attr('id');
			b=b.split('_');
			var c=b[1];
			var d=categories[c];
			var e=0;
			var f=-1;
			if(d){
				var f=d.length;
				for(info in d){
					var g=d[info].types;
					if(g.length)e++
				}
			}
			var h=$('#super_'+(c)).parent();
			if(e==f){
				h.find('.indicator').attr('src',m+c+".png")
			}else if(e!=0){
				h.find('.indicator').attr('src',m+c+".png")
			}else{
				h.find('.indicator').attr('src',o)
			}
		})
	};
	function resetMap(){
		map.closeInfoWindow();
		var a=new GLatLng(center_lat,center_lng);
		map.setCenter(a,default_zoom);
		map.clearOverlays()
	}
	clearSearch=function(){
		resetMap();
		$('#search-text').val('');
		$('#search-results').empty()
	};
	clearBrowse=function(){
		resetMap();
		for(super_id in categories){
			for(i=0;i<categories[super_id].length;i++){
				for(j=0;j<categories[super_id][i].types.length;j++){
					var a=categories[super_id][i].types[j];
					var b=a.marker;
					clusterer.RemoveMarker(b)
				}
				categories[super_id][i].types=[]
			}
		}
		for(var i=0;i<clusterer.clusters.length;i++){
			var c=clusterer[i];
			if(c!=null)clusterer.ClearCluster(c)
		}
		setupCategories();
		Clusterer.MakeCaller(Clusterer.Display,clusterer)
	};
	function toggleGroup(a){
		var b=$('#'+a);
		if(b.is('.sub_nav')){
			a=a.split('_');
			var c=a[1];
			var d=b.parent().parent().parent().find('.main_nav');
			var e=d.attr('id');
			e=e.split('_');
			var f=e[1];
			for(i=0;i<categories[f].length;i++){
				a=categories[f][i];
				if(a.id==c)break
			}
			if(!a.types.length){
				load_markers(f,c);
				return false
			}
		}
		for(d in categories){
			if(f==d){
				for(i=0;i<categories[f].length;i++){
					a=categories[f][i];
					if(c==a.id){
						for(j=0;j<categories[f][i].types.length;j++){
							var g=categories[f][i].types[j];
							var h=g.marker;
							clusterer.RemoveMarker(h)
						}
						categories[f][i].types=[]
					}
				}
			}
		}
		update_indicators()
	};
	if(fullscreen_mode){
		ui={};
		ui.options={'handle':$('#navigation h1')};
		$('#navigation').draggable(ui)
	}
});

$(document).ready(function(){
	if(GBrowserIsCompatible()){
		map=new GMap2(document.getElementById("map_canvas"));
		addMapControls()
	}else{
		alert("Sorry, Your browser is incompatible with Google Maps.")
	}
	function addMapControls(){
		clusterer=new Clusterer(map);
		map.enableContinuousZoom();
		var a=new GScaleControl();
		var b=new GControlPosition(G_ANCHOR_TOP_RIGHT,new GSize(520,10));
		var c=new GControlPosition(G_ANCHOR_BOTTOM_RIGHT,new GSize(10,10));
		map.addControl(a,b);map.addControl(new GLargeMapControl());
		map.addControl(new GMenuMapTypeControl());
		map.addControl(new GOverviewMapControl());var d="";
		var e=new GLatLng(center_lat,center_lng);
		map.setCenter(e,default_zoom);
		var f=2;
		var g=17;
		var h=map.getMapTypes();
		for(var i=0;i<h.length;i++){
			h[i].getMinimumResolution=function(){return f};
			h[i].getMaximumResolution=function(){return g}
		}
	};
	var w={};
	load_subnav=function(g,h){
		h.after(content_loading);
		var i={'action':'load_sectors','super_id':g};
		$.getJSON(ajax_php,i,function(e){
			var f='<ul class="vert_submenu">';
			$(e).each(function(a,b){
				var c=b['id'];
				var d=b['title'];
				categories[g].push({'id':c,'title':d,'types':[]});
				f+='<li><img src= "'+toggleOff+'" class="sub_icon"/><a href="#" class="sub_nav" id="sector_'+c+'">'+d+'</a></li>'
			});
			f+="</ul>";
			$('#loading').remove();
			h.after(f).slideDown('fast')
		})
	};
	load_markers=function(j,k){
		$('#sector_'+k).after(content_loading);
		var l={'action':'load_markers','sector_id':k};
		$.getJSON(ajax_php,l,function(h){
			$(h).each(function(a,b){
				b.title=unescape(String(b.title).replace(/\+/g," "));
				var c=createMarker(b);
				clusterer.AddMarker(c,b.title);
				for(i=0;i<categories[j].length;i++){
					var d=categories[j][i];
					if(d.id==k){break}
				}
				var e=b.title;
				var f=b['loc_id'];
				var g=b['type_id'];
				d.types.push({'marker':c,'title':e,'id':f,'type_id':g})
			});
			update_indicators();
			$('#loading').remove()
		})
	};
	keyword_search=function(l){
		map.clearOverlays();
		var m={'action':'keyword_search','keywords':l};
		$.getJSON(ajax_php,m,function(f){
			var g=f;
			var h=f.length;
			if(!h)h=0;
			var i=$('#search-results');
			i.empty().append("<p><b>"+h+"</b> Locations Found:</p>");
			if(h>0){
				i.append("<div id='result_list'><ul></ul></div>");
				$(f).each(function(a,b){
					var c=b.title;b.title=unescape(String(b.title).replace(/\+/g," "));
					var d=createMarker(b);
					g[a].title=b.title;
					g[a].marker=d;
					map.addOverlay(d);
					var e="";
					if(a%2==0)e="class='alt'";
					$('#result_list ul').append("<li><a href='location/"+c+"' title=\"Click for details on "+b.title+"\" id='location_"+a+"' "+e+"> "+b.title+"</a></li>")
				});
				var j=$('#result_list').css('height');
				var h=parseFloat(j,10);
				var k=400;
				if(h>k){
					$('#result_list').css({'height':k,'overflow-y':'scroll'})
				}
				$('#result_list ul li a').click(function(){
					$('#result_list ul li a').removeClass('cur_loc');
					$(this).addClass('cur_loc');
					var a=$(this).attr('id');
					a=a.split('_');
					var b=a[1];
					var c=g[b];
					displayPopup(c.loc_id);
					return false
				});
				$('#result_list ul li a').hover(function(){
					var a=$(this).attr('id');
					a=a.split('_');
					var b=a[1];
					var c=g[b];
					c.marker.openToolTip(c.title)
				},function(){
					var a=$(this).attr('id');
					a=a.split('_');
					var b=a[1];
					var c=g[b];
					c.marker.closeToolTip()
				})
			}
		})
	};
	function createMarker(a){
		var b=new GLatLng(a.lat,a.lng);
		var c="images/markers/"+a.icon;
		var d="images/markers/marker_shadow.png";
		if(c!=''){
			var e=new GIcon();
			e.image=c;
			e.iconSize=new GSize(32,32);
			e.iconAnchor=new GPoint(14,38);
			e.infoWindowAnchor=new GPoint(14,14);
			e.shadow=d;e.shadowSize=new GSize(59,32);
			var f=new GMarker(b,e)
		}else{
			var f=new GMarker(b)
		}
		f.latlng=b;
		f.location=a;
		GEvent.addListener(f,"click",function(){
			displayPopup(a.loc_id);
			return false
		});
		GEvent.addListener(f,"mouseover",function(){
			f.openToolTip(a.title);
			return false
		});
		GEvent.addListener(f,"mouseout",function(){
			f.closeToolTip();
			return false
		});
		return f
	};
	displayPopup=function(s,t,u){
		SaveTab=u;
		var v={'action':'load_marker_info','location_id':s};
		$.getJSON(ajax_php,v,function(e){
			var f=SaveTab;
			for(var g in e){
				e[g]=unescape(String(e[g]).replace(/\+/g," "))
			}
			var h="images/icons/";
			var i="<h1>"+e.Name+"</h1>";
			i+="<div class='loc_info'>";
			addressKey="";
			if(e.StreetAddress!="")addressKey="Street";
			else if(e.MailingAddress!="")addressKey="Mailing";
			if(addressKey!=""){
				i+="<div style='float:left'><h2><img class='icon2' src=\""+h+"icon_address.png"+"\"/>Address:</h2>";
				address="<p class='info'>";
				address+=e[addressKey+"Address"]+"<br/>";
				address+=e[addressKey+"Town"]+","+e[addressKey+"State"]+" "+e[addressKey+"Zip"];
				i+=address;
				i+="</p></div>"
			}
			if(e.Clients!=""){
				i+="<h3>Clients:</h3>";
				i+="<div class='info_block'>"+e.Clients+"</div>"
			}
			if(e.Services!=""){
				i+="<h3>Services:</h3>";
				i+="<div class='info_block'>"+e.Services+"</div>"
			}
			if(e.Fees!=""){
				i+="<h3>Fees:</h3>";
				i+="<div class='info_block'>"+e.Fees+"</div>"
			}
			i+="<br/></div>";
			var j="<div class='map_popup'>"+i+"</div>";
			i="";
			if(e.Phone!=""||e.Email!=""){
				i+="<div class='dotted_line'><table style='width:100%'>";
				if(e.ContactTitle!="")i+="<tr><td width='20'><img class='icon' src=\""+h+"icon_contact.png"+"\"/></td><td>"+e.ContactTitle+"</td></tr>";
				if(e.ContactPerson!="")i+="<tr><td width='20'><img class='icon' src=\""+h+"icon_contact.png"+"\"/></td><td>"+e.ContactPerson+"</td></tr>";
				if(e.Phone!="")i+="<tr><td><img class='icon' src=\""+h+"icon_phone.jpg"+"\"/></td><td>"+e.Phone+" (phone)</td></tr>";
				if(e.TollFreePhone!="")i+="<tr><td><img class='icon' src=\""+h+"icon_phone.jpg"+"\"/></td><td>"+e.TollFreePhone+" (toll free)</td></tr>";
				if(e.Fax!="")i+="<tr class='row1'><td><img class='icon' src=\""+h+"icon_fax.png"+"\"/></td><td>"+e.Fax+" (fax)</td></tr>";
				if(e.Email!=""){
					var k="<tr>";
					if(e.Fax=="")k="<tr class='row1'>";
					i+=k+"<td><img class='icon' src=\""+h+"icon_email.png"+"\"/></td><td><a href='mailto:"+e.Email+"' title=\"Email "+e.ContactPerson+"\"/>"+e.Email+"</a></td></tr>"
				}
				if(e.Email2!=""){
					var k="<tr>";
					i+=k+"<td><img class='icon' src=\""+h+"icon_email.png"+"\"/></td><td><a href='mailto:"+e.Email2+"' title=\"Email 2\"/>"+e.Email2+"</a></td></tr>"
				}
				i+="</table></div>"
			}
			if(e.WebSite!=""){
				i+="<p class='info'>";
				e.WebSite.replace("http://","");
				e.website_sm=e.WebSite;
				e.WebSite="http://"+e.WebSite;i+="<img class='icon' src=\""+h+"icon_website.png"+"\"/><b>Website:</b> <a href=\""+e.WebSite+"\" title=\"View Website for "+e.Name+"\" target='_blank'/>"+e.website_sm+"</a><br/>";
				if(e.WebSite2!=""){
					e.WebSite2.replace("http://","");
					e.website_sm=e.WebSite2;
					e.WebSite2="http://"+e.WebSite2;i+="<img class='icon' src=\""+h+"icon_website.png"+"\"/><b>Website:</b> <a href=\""+e.WebSite2+"\" title=\"View Website for "+e.Name+"\" target='_blank'/>"+e.website_sm+"</a><br/>"
				}
				i+="</p>"
			}
			if(e.Hours!=""){
				i+="<h3>Hours:</h3>";
				i+="<div class='info_block'>"+e.Hours+"</div>"
			}
			if(e.VolunteerOpportunities!=""){
				i+="<h3>Volunteer Opportunities:</h3>";
				i+="<div class='info_block'>"+e.VolunteerOpportunities+"</div>"
			}
			i+="<br/></div>";
			var l="<div class='contact_information'>"+i+"</div>";
			if(t&&f!="html"){
				var m=new GInfoWindowTab("Location",j);
				var n=new GInfoWindowTab("Contact",l);
				var o=new GInfoWindowTab("Directions",directionsTab(e));
				var p=[f,m,n,o];
				map.openInfoWindowTabsHtml(t.location,p);
				gdir=new GDirections(map,document.getElementById("directions"));
				GEvent.addListener(gdir,"addoverlay",onGDirectionsLoad);
				GEvent.addListener(gdir,"error",handleErrors);
				GEvent.addListener(map,'infowindowclose',function(){
					gdir.clear()
				});
				$('#direction_form').submit(function(){
					var a=$('#fromAddress').val();
					var b=$('#toAddress').val();
					toAddress="";
					if(e.StreetAddress!="")toAddress+=e.StreetAddress+", ";
					else if(e.MailingAddress!="")toAddress+=e.MailingAddress+",";
					if(e.StreetTown!="")toAddress+=e.StreetTown+", ";
					else if(e.MailingTown!="")toAddress+=e.MailingTown+", ";toAddress+=e.StreetState+", ";
					if(e.StreetZip!="")toAddress+=e.StreetZip;
					else if(e.MailingZip!="")toAddress+=e.MailingZip;toAddress+=", USA";
					setDirections(a,toAddress,{'preserveViewport':true,'locale':'en_US'});
					return false
				});
				$('.location_list a').click(function(){
					$('#location_list a').removeClass('cur_loc');
					$(this).addClass('cur_loc');
					var a=$(this).attr('id');
					a=a.split('_');
					var b=a[1];
					var c=t.markers[b];
					var d=map.getInfoWindow();
					d.getContentContainers()[1].innerHTML=content_loading;
					displayPopup(c.location.loc_id,true,"html");
					return false
				});
				$('.scroll-pane').jScrollPane()
			}else if(t){
				var q=map.getInfoWindow();
				q.getContentContainers()[1].innerHTML=j;
				q.getContentContainers()[2].innerHTML=l;
				q.selectTab(1)
			}else{
				var f=new GInfoWindowTab("Location",j);
				var m=new GInfoWindowTab("Contact",l);
				var n=new GInfoWindowTab("Directions",directionsTab(e));
				var p=[f,m,n];
				var r=new GLatLng(e.latitude,e.longitude);
				map.openInfoWindowTabsHtml(r,p);
				$('.scroll-pane').jScrollPane();
				gdir=new GDirections(map,document.getElementById("directions"));
				GEvent.addListener(gdir,"addoverlay",onGDirectionsLoad);
				GEvent.addListener(gdir,"error",handleErrors);
				GEvent.addListener(map,'infowindowclose',function(){
					gdir.clear()
				});
				$('#direction_form').submit(function(){
					var a=$('#fromAddress').val();
					var b=$('#toAddress').val();
					toAddress="";
					if(e.StreetAddress!="")toAddress+=e.StreetAddress+", ";
					else if(e.MailingAddress!="")toAddress+=e.MailingAddress+",";
					if(e.StreetTown!="")toAddress+=e.StreetTown+", ";
					else if(e.MailingTown!="")toAddress+=e.MailingTown+", ";toAddress+=e.StreetState+", ";
					if(e.StreetZip!="")toAddress+=e.StreetZip;
					else if(e.MailingZip!="")toAddress+=e.MailingZip;toAddress+=", USA";
					setDirections(a,toAddress,{'preserveViewport':true,'locale':'en_US'});
					return false
				})
			}
			tb_init('a.thickbox, area.thickbox, input.thickbox');
			imgLoader=new Image();
			imgLoader.src=tb_pathToImage
		})
	};
	directionsTab=function(a){
		toAddress=a.latitude+","+a.longitude;
		var b="<div class='map_popup'>";
		b+="<form action='#' id='direction_form'>";
		b+='<input type="hidden" size="35" id="toAddress" name="to" value="'+toAddress+'" />';
		b+="<table>";
		b+="<tr><td>From:</td><td><input type='text' size='35' id='fromAddress' name='from' value=''/></td></tr>";
		b+='<tr><td></td><td id="direction_options"><input name="submit" type="submit" value="Get Directions!" /></td></tr>';
		b+="</table>";
		b+="</form>";
		b+="<div class='scroll-pane'><div id='directions'><div></div>";
		b+="</div>";
		return b
	};
	function onGDirectionsLoad(){
		var b=$('#directions table');
		var c=b.length;
		$('#directions table:nth('+(c-2)+') td:last').text(toAddress);
		$('#direction_options').append('<input name="submit" type="button" value="Print" />').click(function(){
			var a=$('#directions').html();
			printDirections();
			return false
		})
	};
	function printDirections(){
		var a="toolbar=yes,location=no,directories=yes,menubar=yes,";
		a+="scrollbars=yes,width=650, height=600, left=100, top=25";
		var b=document.getElementById("directions").innerHTML;
		var c=window.open("","",a);c.document.open();
		c.document.write('<html><head><title>Driving Directions</title>');
		c.document.write('</head><body onLoad="self.print()"><center>');
		c.document.write(b);c.document.write('</center></body></html>');
		c.document.close();c.focus()
	};
	function setDirections(a,b,c){
		gdir.load("from: "+a+" to: "+b,c)
	};
	function handleErrors(){
		var a=$('#directions');
		var b="";
		a.empty();
		b="<p>Sorry, No corresponding geographic location could be found for the specified from address. This may be due to the fact that the address is relatively new, or it may be incorrect.</p>";
		a.append("<p>"+b+"</p>")
	};
	$('#map_canvas').mousewheel(function(a,b){
		if(b>0){
			map.zoomIn(map.getCenter(),true,true)
		}else if(b<0){
			map.zoomOut(map.getCenter(),true)
		}
		return false
	})
});

function ucwords(b){
	return b.replace(/^(.)|\s(.)/g,function(a){
		return a.toUpperCase()
	})
};

$(document).ready(
	function(){
		$(window).resize(
			function(){
				var a=$(window).height();
				var b=$('#header').height();
				var c=$('#main_column h1').height()+6;
				var d=a-b-c*2-20;
				$('#map_canvas').css({'height':d});
				var e=$('.tabs-nav').height();
				var f=0;
				var g=40+30;
				var h=a-b-e-f-g;
				$("#browse_categories_list").css({'height':h});
				var i=$("#browse_categories_list").height()-20;
				$("#result_list").css({'height':i})
			}
		);
		$(window).resize()
	}
);
