var functions = {
	tooltip: function(o) {
		if ($.browser.safari && $.browser.version < 523) {
			//do nothing because the jquery tooltip crashes older versions of safari that should be supported
		} else {
			if ($('a.helpbutton').length) {
				$('a.helpbutton').tooltip({
					track: true,
					delay: 0,
					showURL: false,
					showBody: " - ",
					top: -16,
					left: 15,
					fixPNG: false
				});
			}
		}
	},

	initialiseMap: function() {
		if (GBrowserIsCompatible && $('.google-map').length > 0) {
			var points = [];
			var bounds = null;
			var center = null;
			var zoom = null;
			var mgr = null;


			function processPoints(points, bounds, center, zoom) {
				var map = new GMap2($('.google-map').get(0));
				map.addControl(new GLargeMapControl());
				map.addControl(new GMapTypeControl());
				window.setTimeout(setupWeatherMarkers, 0);

				//alert(points.length);

				//map.addOverlay(point);

				if (points.length > 1) {
					if (!center) {
						var center = bounds.getCenter();
					}
					if (!zoom) {
						var zoom = map.getBoundsZoomLevel(bounds);
					}
				}
				else {
					var center = points[0];
					var zoom = 15;
				}

				map.setCenter(center, Number(zoom));



				function setupWeatherMarkers() {
					mgr = new MarkerManager(map);
					mgr.addMarkers(createMarkers(points.length), 3);
					mgr.refresh();
				}

				setupWeatherMarkers();


				function createMarkers(n) {

					var batch = [];
					for (var i = 0; i < n; ++i) {
						var __temp = createMarker(points[i])
						batch.push(__temp);
					}
					return batch;



					//for (i=0;i<limit;i++) {

					//createMarker(points[i]);

					//}

				}


				function createMarker(p) {
					var __temp = new GMarker(p);
					map.addOverlay(__temp);

					GEvent.addListener(__temp, "click", function() {

						//DDK removed line below				    
						//var address = p.addr.split(",");

						//DDK added the line below.
						var str = "<strong>" + p.addr + "</strong>";

						/* DDK took the following out
						for(i=0;i<address.length;i++){
						if(i==0){
						str+="<strong>"+address[i]+",<br /></strong>";
						}
						else{
						if(address[i].indexOf("http://")!=-1){
						str+="<a href='"+address[i]+"' target='_blank' style='text-decoration:underline'>"+address[i]+"</a>";	
						}
						else{
						str+=address[i]+",<br />";	
						}
									
						}													
						}
						*/

						var __html = "<div style='width:220px;'>" + str + "</div>";
						__temp.openInfoWindowHtml(__html);
					});

					return __temp;

				}
			}

			if (inpage.point) {
				points.push(new GLatLng(inpage.point.x, inpage.point.y));

				processPoints(points, bounds, center, zoom);
			}
			else {
				if (inpage.pointsXml) {

					bounds = new GLatLngBounds();

					$.get(inpage.pointsXml, function(xml) {
						$(xml).find('office').each(function() {
							var point = new GLatLng($(this).attr('x'), $(this).attr('y'));

							//DDK removed Ted's line
							//point.addr = $(this).attr('address1')

							//DDK added this line
							//point.addr = $(this).find('address');

							//NL added:
							if ($(this).find('tel').text().length > 1) {
								var tel = '<br/>T: ' + $(this).find('tel').text();
							} else {
								var tel = '';
							}

							if ($(this).find('fax').text().length > 1) {
								var fax = '<br/>F: ' + $(this).find('fax').text();
							} else {
								var fax = '';
							}

							if ($(this).find('email').text().length > 1) {
								var email = '<br/><a href="mailto:' + $(this).find('email').text() + '">' + $(this).find('email').text() + '</a>';
							} else {
								var email = '';
							}

							if (inpage.showlocationLink && $(this).find('url').text().length > 1) {
								var url = '<br/><a href="' + $(this).find('url').text() + '">View location page</a>';
							} else {
								var url = '';
							}

							var addr = $(this).find('address').text();
							point.addr = addr + tel + fax + email + url;

							points.push(point);
							bounds.extend(point);
						});

						var map_element = $(xml).find('map');

						if (map_element.attr('center-x')) {
							center = new GLatLng(map_element.attr('center-x'), map_element.attr('center-y'));
						}
						if (map_element.attr('zoom')) {
							zoom = map_element.attr('zoom');
						}

						processPoints(points, bounds, center, zoom);
					});
				}
			}
		}
	},

	searchButton: function(e) {
		if ($('.search-form').length) {
			$('.search-form').find('.button').bind('mouseenter mouseup', function(e) {
				jQuery.browser.msie && jQuery.browser.version < 7 ? $(this).css('backgroundImage', 'url(/images/button-left-hover.gif)') : $(this).css('backgroundImage', 'url(/images/button-left-hover.png)');
				jQuery.browser.msie && jQuery.browser.version < 7 ? $(this).find('input').css('backgroundImage', 'url(/images/button-right-hover.gif)') : $(this).find('input').css('backgroundImage', 'url(/images/button-right-hover.png)');
			}).bind('mouseleave', function(e) {
				jQuery.browser.msie && jQuery.browser.version < 7 ? $(this).css('backgroundImage', 'url(/images/button-left.gif)') : $(this).css('backgroundImage', 'url(/images/button-left.png)');
				jQuery.browser.msie && jQuery.browser.version < 7 ? $(this).find('input').css('backgroundImage', 'url(/images/button-right.gif)') : $(this).find('input').css('backgroundImage', 'url(/images/button-right.png)');
			}).bind('mousedown', function(e) {
				jQuery.browser.msie && jQuery.browser.version < 7 ? $(this).css('backgroundImage', 'url(/images/button-left-click.gif)') : $(this).css('backgroundImage', 'url(/images/button-left-click.png)');
				jQuery.browser.msie && jQuery.browser.version < 7 ? $(this).find('input').css('backgroundImage', 'url(/images/button-right-click.gif)') : $(this).find('input').css('backgroundImage', 'url(/images/button-right-click.png)');
			});

			$('.search-form').find('.text').bind('focus', function(e) {
				if ($(this).val() == 'Enter a keyword') {
					$(this).val('');
				}
			}).bind('blur', function(e) {
				if ($(this).val() == '') {
					$(this).val('Enter a keyword');
				}
			})
		}
	}
}

$(function() {
	functions.tooltip();
	if($('.google-map').length){
		functions.initialiseMap();
	}
	functions.searchButton();
});

$(document).ready( function() {
							
	//select all checkboxes
	$('input.top').click(
		function() {
			if($(this).is(':checked')) {
				$(this).siblings('ul').find('input[type=checkbox]').attr('checked','checked');
			} else {
				$(this).siblings('ul').find('input[type=checkbox]').attr('checked','');
			}
		}
	);
 	
	//uncheck 'select all' 
	$('ul.sub li input').click(
		function() {
			var parUl = $(this).parent().parent();
			var topInput = parUl.siblings('input');
			
			if(parUl.find('input[type=checkbox]:checked').length == parUl.find('input[type=checkbox]').length){
				topInput.attr('checked','checked');
			} else {
				topInput.attr('checked','');
			}			
		}
	);
	
	//toggle filters
	$('a.afilter').click(
		function(){
			$(this).toggleClass('selected'); 
	  		$(this).siblings('ul').toggleClass('open'); 
			return false;
		}
	);
	
	//site search hide results/show & hide on key up.

	$('input.text').keyup(
		function() {
			if($(this).val() == '') {
				$('div.content').show();
				$('div#googlesitesearch').hide();
			}
		}
	);
});

