
	$currentSlide = 1;
			
	function onBefore() {
		var id = $(this).attr('id');
		id = id.substring(id.length-1);
		
		$('#flash-link-' + $currentSlide).removeClass("selected");
		//$('#flash-link-' + $currentSlide).attr('href', '#');
		
		$('#flash-link-' + id).addClass("selected");
		//$('#flash-link-' + id).attr('href', $(this).attr('rel'));
		$currentSlide = id;							
	}

	$(document).ready(function() {
		$('#flash-holder').cycle({ 
			fx:     'fade', 
			speed:  'slow', 
			timeout: 5000,
			before:	onBefore																
		});

		$('#flash-controls').children().each(function() {

			$(this).hover(function () {
				$('#flash-holder').cycle('pause');
				var id = $(this).attr('id');
				id = id.substring(id.length-1);
				id -= 1;
				$('#flash-holder').cycle(id);						
			})										
		});				
		
		$(function() {
			$('.lightbox-image').lightBox();
		});

	});		
	
	function confirm_delete()
	{
		var confirmation = confirm("Are you sure you want to delete");
		if (confirmation)	{
			return true;
		}
		else {
			return false;
		}

	}

	function toggleSearchResults(ULId)
	{
		//alert(document.getElementById(ULId).style.display);
		if (document.getElementById(ULId).style.display == 'none') {
			$('#' + ULId + '_X').text('-');
			$('#' + ULId).show("slide", { direction: "up" }, 1000);
			//$('#' + ULId).slideDown("slide");			
		}
		else {
			$('#' + ULId).hide("slide", { direction: "up" }, 1000);
			$('#' + ULId + '_X').text('+');

		}
		return false;
	}
	
	function toggleResults(ULId)
	{
		//alert(document.getElementById(ULId).style.display);
		if (document.getElementById(ULId).style.display == '' || document.getElementById(ULId).style.display == 'none') {
			$('#' + ULId + '_X').text('-');
			$('#' + ULId).show("slide", { direction: "up" }, 1000);
			//$('#' + ULId).slideDown("slide");			
		}
		else {
			$('#' + ULId).hide("slide", { direction: "up" }, 1000);
			$('#' + ULId + '_X').text('+');

		}
		return false;
	}

	function bookmark_us(url, title)
	{
		if (window.sidebar) // firefox
			window.sidebar.addPanel(title, url, "");
		else if(window.opera && window.print){ // opera
			var elem = document.createElement('a');
			elem.setAttribute('href',url);
			elem.setAttribute('title',title);
			elem.setAttribute('rel','sidebar');
			elem.click();
		}
		else if(document.all) // ie
			window.external.AddFavorite(url, title);
	}


	// Google map init
	function initialize() {
		var latlng = new google.maps.LatLng(51.903861, -0.214555);
		
		var myOptions = {
		  zoom: 12,
		  center: latlng,
		  mapTypeId: google.maps.MapTypeId.ROADMAP
		};
		var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

		var marker = new google.maps.Marker({
			position: latlng, 
			map: map,
			title:"FIRA International"
	    });  
	  }

	Number.prototype.toRad = function() {  // convert degrees to radians
		return this * Math.PI / 180;
	} 

/******************************************************************************/
// Store Locator JS 

	function showMarkers() {
		for(i = 1; i < 5; i++) {
			setTimeout("doGeoCode(i);", 500);			
		}
	}
	
	function doGeoCode(i) {		
		geocoder.getLocations(markers[i][2] + " " + markers[i][0] + " " + markers[i][8], function (response) {
		
				if (!response || response.Status.code != 200) {
					alert(response.Status.code);
			        alert(markers[i][0] + " " + markers[i][8]);
			    } 
			   	else {
			        place = response.Placemark[0];
			        point = new GLatLng(place.Point.coordinates[1],
			                            place.Point.coordinates[0]);
			        var marker = new GMarker(point);
			        map.addOverlay(marker);
	
								
					GEvent.addListener(marker, 'click', 
						       (function()
						          { marker.openInfoWindowHtml("<div class='text'><strong>" + markers[i][1] + "</strong><br />" + markers[i][2] + "<br />" + markers[i][3] + "<br />" + markers[i][4] + "<br />" + markers[i][5] + "<br />" + markers[i][6] + "<br />" + markers[i][0] + "<br /><a href='" + markers[i][7] + "' target='_blank'>" + markers[i][7] + "</a></div>"); }
						      )	);  
	
			    }
			
			
			});
	}

	function showAddress() {
		address = $('#frmPostcode').val();
		var UserSelectList = '';
		
		if (address == '')
		{
			alert("Please enter your postcode/address/town");
			$('#frmPostcode').focus();
			return false;
		}
		
		if (document.getElementById('results').style.display == '' || document.getElementById('results').style.display == 'block') {
			//$('#results').hide("fade", { direction: "up" }, 1000);
			$('#results').fadeOut(700);
		}
		
	 		var search = address;
	        var s = search.toUpperCase();
	        s = s.replace(/\W+/g, " ");
	        s = s.replace(/^ /, "");
	        s = s.replace(/ $/, "");
	        var match = s.match(/^[A-Z]{1,2}[0-9R][0-9A-Z]? [0-9][ABD-HJLNP-UW-Z]{2}$/);
	        if (!match) {	          
	        	geocoder.getLocations(address + " UK", function(response) {
	    			if (!response || response.Status.code != 200) {
						if (response.Status.code == 602) {
							alert("Sorry, your address could not be found");	
						}
						else {
							alert(response.Status.code);
		    		        //alert(markers[i][0] + " " + markers[i][8]);
						}
	    		    } 
	    			else {
	    				//alert(response.Placemark);
	    				//alert(response.Placemark.length);
	    				if(response.Placemark.length > 1)
	    				{					
	    					for(var i = 0; i < response.Placemark.length; i++)
	    					{
	    						var place = response.Placemark[i];
	    						UserSelectList = UserSelectList + '<a href="#" onclick="return pickAddress(' + place.Point.coordinates[1] + ', ' + place.Point.coordinates[0] + ', true, \'\', \'\');">' + place.address + "</a><br />";		
	    					}
	    					$('#results').html(UserSelectList);
	    					$('#results').fadeIn(700);
	    				}
	    				else {
	    					var place = response.Placemark[0];
	    					if (!place) {
	    					  	alert(address + " not found");
	    					} 
	    					else {
	    						uLat = place.Point.coordinates[1];
	    			            uLng = place.Point.coordinates[0];

	    						addPoint(place.Point.coordinates[1], place.Point.coordinates[0], true, "", "");
	    						getTFOMembers(place.Point.coordinates[1], place.Point.coordinates[0], $('#frmRadius').val(), "");	        
	    					}
	    				}
	    			}
	    		});
	        } 
	        else {	           
				// UK postcode
	        	gdir.loadFromWaypoints([search,search],{getPolyline:true});

	            GEvent.addListener(gdir,"load", function() {
	              var poly = gdir.getPolyline();
	              var point = poly.getVertex(0);

	              uLat = point.lat();
	              uLng = point.lng();
				  addPoint(point.lat(), point.lng(), true, '', '');				  
				   
	            });	         
	            getTFOMembers(uLat, uLng, $('#frmRadius').val(), "");
	        }		
		
		}

	function pickAddress(lat, lng) {
		uLat = lat;
        uLng = lng;
		getTFOMembers(lat, lng, $('#frmRadius').val(), "");	
		addPoint(lat, lng, true, "", "");	
		
	}
	
	function addTFOMember(node) {
		 var rnd = Math.random();
		 var marker;
	
		 var lat = $(node).find('latitude').text()
		 var lng = $(node).find('longitude').text()
		 		 
		 
		 /*
		 search = $(node).find('POSTCODE').text();
		 
 		 geocoder.getLocations(search + " UK", function(response) {
			
			if (!response || response.Status.code != 200) {
						if (response.Status.code == 602) {
							alert("Sorry, your address could not be found");	
						}
						else {
							alert(response.Status.code);
		    		        //alert(markers[i][0] + " " + markers[i][8]);
						}
	    		    } 
	    			else {
			
			var place = response.Placemark[0];
			if (!place) {
				alert(address + " not found");
			} 
			else {
				lat = place.Point.coordinates[1];
				lng = place.Point.coordinates[0];				
			}
					}
		 });
		*/

		 point = new GLatLng(lat, lng);
		 
		 switch ($(node).find('grade').text()) {
			case "Full": marker = new GMarker(point, {icon:TFOFullicon});
						break;			
			default: marker = new GMarker(point, {icon:TFOAsscicon});
						break;
			}
			
		 map.addOverlay(marker);

		 addToOverlays(marker);
				
		 GEvent.addListener(marker, 'click', 
	     		(function()
	          		{ 
	          			/*
						var sectors;

						if ($(node).find('bs01').text() == '1') { sectors += "<li>Upholstered/Leather Furniture</li>"; }
						if ($(node).find('bs02').text() == '1') { sectors += "<li>Upholstered/Leather Furniture</li>"; }
						if ($(node).find('bs03').text() == '1') { sectors += "<li>Upholstered/Leather Furniture</li>"; }
						if ($(node).find('bs04').text() == '1') { sectors += "<li>Upholstered/Leather Furniture</li>"; }
						if ($(node).find('bs05').text() == '1') { sectors += "<li>Upholstered/Leather Furniture</li>"; }
						if ($(node).find('bs06').text() == '1') { sectors += "<li>Upholstered/Leather Furniture</li>"; }
						if ($(node).find('bs07').text() == '1') { sectors += "<li>Upholstered/Leather Furniture</li>"; }
						if ($(node).find('bs08').text() == '1') { sectors += "<li>Upholstered/Leather Furniture</li>"; }
						if ($(node).find('bs09').text() == '1') { sectors += "<li>Upholstered/Leather Furniture</li>"; }
						*/
		
						marker.openInfoWindowHtml("<div class='overlay'><strong>" + $(node).find('company').text() + 
							"</strong><br />" + $(node).find('line1').text() + "<br />" + $(node).find('line2').text() + 
							"<br />" + $(node).find('towncity').text() + " " + $(node).find('county').text() + "<br />" + 
							$(node).find('postcode').text() + "<br /><a href='http://" + $(node).find('web').text() + 
							"' title='Click here to visit " + $(node).find('company').text() + " web site' target='_blank'>" 
							+ $(node).find('web').text() + "</a><br /><strong><div class='sectors'><ul>" + $(node).find('sectors').text() + 
							"</ul></div><div class='clear'></div><div class='floatable'>Distance: " 
							+ $(node).find('distance').text() + " miles</strong></div><div class='floatable' style='width: 115px;'><a href='http://maps.google.com/maps?saddr=" 
							+ uLat + "," + uLng + "&daddr=" + lat + "," + lng + "' target='_blank'>Get Directions</a></div></div>"); }
	      		)	);  
	}

	function getTFOMembers(lat, lng, radius, cats) {

		var rnd = Math.random();

		$.ajax({
			type: "GET",
			processData: "false",
			cache: "false",
			url: "/tfo/locator/ajax",
			data: { lat: lat, lng: lng, radius: radius, cat1: $('#frmOpt1').is(':checked'), cat2: $('#frmOpt2').is(':checked'), 
					cat3: $('#frmOpt3').is(':checked'), cat4: $('#frmOpt4').is(':checked'), cat5:  $('#frmOpt5').is(':checked'),
					cat6: $('#frmOpt6').is(':checked'), cat7: $('#frmOpt7').is(':checked'), cat8:  $('#frmOpt8').is(':checked'), 
					cat9: $('#frmOpt9').is(':checked'), cat10: $('#frmOpt10').is(':checked'), cat11: $('#frmOpt11').is(':checked'), id: rnd.toString()},
			dataType: "xml",
			beforeSend: function() {
				document.body.style.cursor =  "wait";
			},
			complete: function() {
				document.body.style.cursor =  "default";
			},
			success: function(xml) {
				$(xml).find('unknownNode').each(function(){
					addTFOMember($(this));					
				});				
			},
			error: function(xml, desc) {
				//alert("Error: " + desc);
				alert("No TFO members found");
			}
			
			});
							
	}
	
	function addPoint(lat, lng, bCenter, zoom, type) {
		var point = new GLatLng(lat, lng);

		removeOverlays();
		
		switch (type) {
			case "Full": marker = new GMarker(point);
						break; 
			case "Assoc": marker = new GMarker(point);
						break;
			default: marker = new GMarker(point);
						break;
		}
		
		map.addOverlay(marker);	
		addToOverlays(marker);

		if (!zoom) {

			switch($('#frmRadius').val()) {
				case "5": zoom = 11;
							break;
				case "10": zoom = 10;
							break;
				case "15": zoom = 9;
							break;
				case "20": zoom = 9;
							break;
				case "25": zoom = 8;
							break;
			
			}
			 
		}
		
		if (bCenter) {			
			map.setCenter(point, zoom);
			//map.panTo(point);		
		}		

		
		searchPoints = getCirclePoints(point,$('#frmRadius').val());
		
		return false;
	}


	function getCirclePoints(center,radius){
		var circlePoints = Array();
		var searchPoints = Array();

		with (Math) {
			var rLat = (radius/3963.189) * (180/PI); // miles
			var rLng = rLat/cos(center.lat() * (PI/180));

			for (var a = 0 ; a < 361 ; a++ ) {
				var aRad = a*(PI/180);
				var x = center.lng() + (rLng * cos(aRad));
				var y = center.lat() + (rLat * sin(aRad));
				var point = new GLatLng(parseFloat(y),parseFloat(x),true);
				circlePoints.push(point);
				if (a % pointInterval == 0) {
					searchPoints.push(point);
				}
			}
		}

		searchPolygon = new GPolygon(circlePoints, '#0000ff', 1, 1, '#0000ff', 0.1);	
		map.addOverlay(searchPolygon);
		//map.setCenter(searchPolygon.getBounds().getCenter(),map.getBoundsZoomLevel(searchPolygon.getBounds()));

		addToOverlays(searchPolygon);
		
		return searchPoints;

	}
		
	function addToOverlays(overlay) {
		overlays[overlays.length] = overlay;
	}

	function removeOverlays()
	{
		//map.removeOverlay();

		for(i = 0; i < overlays.length; i++)
		{
			var overlay = overlays[i];
			overlay.remove();
		}
		overlays = new Array();
	}

	function calcDistance(lat1, lon1) {
		lat2 = uLat;
		lon2 = uLng;
		
		var R = 6371 / 1.6; // km - convert to miles
		var dLat = (lat2-lat1).toRad();
		var dLon = (lon2-lon1).toRad(); 
		var a = Math.sin(dLat/2) * Math.sin(dLat/2) +
		        Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) * 
		        Math.sin(dLon/2) * Math.sin(dLon/2); 
		var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
		var d = R * c;

		return d.toFixed(2);		
	}

	function handleReturn(e) {
		if (e.keyCode == 13) 
		{
			return showAddress();	
		}
	}

/******************************************************************************/