var sportMapResultShowListPage = 1;
var sportMapTotalListPages = 0;
var sportMapResultListPerPage = 10;
var sportMapUseRadiusPager = false;

var outerBounds;
var markersAreDraggable = false;
var sportMapMarkers = [];

var gPGI = null;
var gRequestFilterComplete = false;

var radiusCircle;
var radiusCircleColor = "#0096e6";

/* Object for markers added to map */
(function() {
	MySportMapMarker = function(marker,info,data,isVisible){
		this.marker = marker;
		this.info = info;
		this.data = data;
		if(!isVisible) isVisible = false;
		this.isVisible = isVisible;
	};
	
	MySportMapMarker.prototype = {
			marker:null,
			info:null,
			data:null,
			isVisible:false
	};
})();


function handleSportMapMarkerMoved(latlng){
	alert("The new coordinates: "+latlng.lat()+","+latlng.lng());
}							   

function parseMarkerToolTipString(toolTip){
	newToolTip = decodeURIComponent(toolTip);
	newToolTip = newToolTip.replace(/&quot;/gi,'"');
	return newToolTip;
}

function createSportMapMarker(data, showItemInList,openInfoWindow) {
    var ic = new GIcon(G_DEFAULT_ICON);
    if (data.iconUrl) {
		ic.image = data.iconUrl;
		ic.shadow = "";
		ic.iconSize = new GSize(data.iconWidth,data.iconHeight);
		ic.iconAnchor = new GPoint(Math.ceil(data.iconWidth/2),(data.iconHeight - 3)); 
    }
	var latlng = new GLatLng(data.sportclub_address_latitude,data.sportclub_address_longitude);
    var ma = new GMarker(latlng,{icon:ic,title:parseMarkerToolTipString(data.sportclub_name),draggable:markersAreDraggable});
    if(markersAreDraggable){
		GEvent.addListener(ma, "dragstart", function() {
												m.getMap().closeExtInfoWindow();
									   		});
		GEvent.addListener(ma, "dragend", handleSportMapMarkerMoved);
    }
    compareSportMapMarkerToOuterBounds(latlng);
    if (data.mapInfo) {
		GEvent.addListener(ma,'click',function() {
			ma.openExtInfoWindow(
		              m.map,
		              "sportMapInfoWindow",
		              decodeURIComponent(data.mapInfo),
		              {beakOffset:5}
		            ); 
	    });
		if(openInfoWindow){
			ma.openExtInfoWindow(
		              m.map,
		              "sportMapInfoWindow",
		              decodeURIComponent(data.mapInfo),
		              {beakOffset:5}
		            ); 
		}
    }
    if(showItemInList){;
        addSportMapListItem(data);
    }
    
    return ma;
}

function compareSportMapMarkerToOuterBounds(latlng){
	var lngLatBounds = m.map.getBounds();
	if(!outerBounds) outerBounds = lngLatBounds;
	
	if(!outerBounds.containsLatLng(latlng)){
		outerBounds.extend(latlng);
	}
}

function setSportMapToOuterBounds(){
	var lngLatBounds = m.map.getBounds();
	if(!lngLatBounds.equals(outerBounds)){
		m.map.setCenter(outerBounds.getCenter(),m.map.getBoundsZoomLevel(outerBounds));
	}
}

function initSportMapMarkers(){
    var script = document.createElement('script');
    script.src = '/f/js/ORKMapSmallControl.js';
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);

    var script = document.createElement('script');
    script.src = '/f/js/ORKMapProgressIndicator.php?lang={LANG}';
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);

    var script = document.createElement('script');
    script.src = 'http://gmaps-utility-library.googlecode.com/svn/trunk/extinfowindow/release/src/extinfowindow_packed.js';
    script.type = 'text/javascript';
    document.getElementsByTagName('head')[0].appendChild(script);

    var j = 0;
    j = window.setInterval(function() {
	    if (window['ORKMapProgressIndicator']) {
	    	window.clearInterval(j);
	    	if(!gRequestFilterComplete) showPGI();
	    }
	}, 300);
    var i = 0;
    i = window.setInterval(function() {
	    if (window['ORKMapSmallControl']) {
	    	window.clearInterval(i);
    		m.map.addControl(new ORKMapSmallControl());
	    }
	}, 300);
	
    if(useFilterForm){
    	submitSportMapFilter(sportMapRequestUrl);
    }else{
        requestSportMapFilteredMarkers(sportMapRequestUrl);
    }
}

function showPGI(){
	if(gPGI || !window['ORKMapProgressIndicator']) return;

	var left = (m.getMap().getSize().width/2)-110;
	var right = (m.getMap().getSize().height/2)-50;
	var pgiPosition = new GControlPosition(G_ANCHOR_TOP_LEFT, new GSize(left,right));
	gPGI = new ORKMapProgressIndicator();
	m.map.addControl(gPGI,pgiPosition);
}

function hidePGI(){
	if(!gPGI) return;
	
	m.map.removeControl(gPGI);
	gPGI = null;
}

function addSportMapMarkers(markers){
	if (markers.length <= 0) return;
	setSportMapToOuterBounds();
	m.getManager().clearMarkers();
	sportMapMarkers = markers;
	var markerList = [];
	for(var i=0;i < sportMapMarkers.length;i++){
		markerList.push(sportMapMarkers[i].marker);
	}
	m.getManager().addMarkers(markerList,3);
	m.getManager().refresh();
}

function sportclubMapLoadedCallback(){
	window.setTimeout(initSportMapMarkers,0);
}

function resetSportMap(requestUrl) {
	window.location.href = requestUrl;
	return;
	
	hideSportMapMessage();
	clearSportMap();
	var form = document.getElementById("mapSearchForm");
	if(!form) return;
	form.reset();
	var request = requestUrl+"&";
	requestSportMapFilteredMarkers(request);
}

function requestFilterComplete(){
	gRequestFilterComplete = true;
	hidePGI();
}

function submitSportMapFilter(requestUrl){
	if(!requestUrl) return;
	gRequestFilterComplete = false;
	showPGI();
	hideSportMapMessage();
	
	checkSportMapExtendedSearch();
	
	var form = document.getElementById("mapSearchForm");
	if(!form) return;
	
	var mapSearch = "&";
	for(var i=0;i < form.length; i++){
		var el = form.elements[i];
		if(!el) continue;
		switch(el.type){
			case 'checkbox':
				if(el.checked){
					mapSearch += el.name+"="+el.value+"&";
				}
				break;
			case 'radio':
			default:
				mapSearch += el.name+"="+el.value+"&";
				break;
		}
	}
	var request = requestUrl+mapSearch;
	requestSportMapFilteredMarkers(request);
}

function checkSportMapExtendedSearch(){
	var extSearch = document.getElementById('extendedSearch');
	if(!extSearch)return;
	if(extSearch.style.display=="block"){
		var isCountrySelected = false;
		var inputs = extSearch.getElementsByTagName("input");
		for(var i=0;i < inputs.length;i++){
			switch(inputs[i].type){
				case 'checkbox':
					if(inputs[i].checked){
						isCountrySelected = true;
					}
					break;
				default:
					break;
			}
		}
		if(!isCountrySelected){ // set all to checked if none are checked
			for(var i=0;i < inputs.length;i++){
				switch(inputs[i].type){
					case 'checkbox':
						inputs[i].checked = true;
						break;
				}
			}
		}
	}else{
		var selects = extSearch.getElementsByTagName("select");
		for(var s=0;s < selects.length;s++){
			selects[s].selectedIndex = 0;
		}
	}
}

function requestSportMapFilteredMarkers(request) {
	if(!request) return;
	gRequestFilterComplete = false;
	var resultHandler = {
		success:handleRequestSportMapFilterMarkers
	}
	sportMapCleanPager();
	clearSportMapListItems();
	var req = YAHOO.util.Connect.asyncRequest('GET', request, resultHandler, null);
}

function handleRequestSportMapFilterMarkers(o) {
	var jsonResponse = o.responseText;
	if(YAHOO.lang.JSON.isValid(jsonResponse)){
		// radius filtering check
		var zipEl = document.getElementById("mapSearchFieldZip");
		var countryEl = document.getElementById("mapSearchFieldCountryRadius");
		var radiusEl = document.getElementById("mapSearchFieldRadius");
		var zip = "";
		var country = "";
		var radius = "";
		var radiusFilterCount = 0;
		var filterByRadiusValue = false;
		var address = [];
				
		if(zipEl) {
			zip = zipEl.value;
			if(zip) radiusFilterCount++;
		}
		if(countryEl) {
			var radios = countryEl.getElementsByTagName("input");
			for(var c=0;c < radios.length;c++){
				if(radios[c].checked){
					country = radios[c].value;
					break;
				}
			}
			if(country) radiusFilterCount++;
		}
		if(radiusEl) {
			radius = radiusEl.value;
			if(radius) radiusFilterCount++;
		}
		if(radiusFilterCount==3) {
			filterByRadiusValue = true;
			address.push(zip);
			address.push(country);
		}
		if(radiusFilterCount && radiusFilterCount<3){
			if(!radius){
				showSportMapMessage("{errorSearchFilterNeedRadius}","error");
				requestFilterComplete();
				return;
			}
			if(!country || !zip){
				showSportMapMessage("{errorSearchFilterNeedZipAndCountry}","error");
				requestFilterComplete();
				return;
			}			
		}
		
		// draw markers on map
		var centerOnMap = false;
		var data = eval(jsonResponse);

		clearSportMap();

		if(!data || !data.length){
			showNoSportMapResultsFound();
			return;
		}

		var markers = [];
		for(var i = 0; i < data.length;i++){
			var markerData = data[i];
			var showInList = !filterByRadiusValue;
			if((i+1)>sportMapResultListPerPage){
				showInList = false;
			}
			var marker = createSportMapMarker(markerData,showInList);
			markers.push(new MySportMapMarker(marker,markerData.mapInfo,markerData,!filterByRadiusValue));
		}
		addSportMapMarkers(markers);

		if(filterByRadiusValue) {
			findFilterSportMapRadiusCenter(radius,address.join(","),false);
		}else{
			drawSportMapListPager();
			showSportMapMessage("{msgYourSearchHasNumHits}","",[sportMapMarkers.length]);
			requestFilterComplete();
		}
	}else{
		alert("Error getting search response.");
		//alert("json response: "+jsonResponse);
		requestFilterComplete();
	}
} 

function showNoSportMapResultsFound(){
	sportMapCleanPager();
	showSportMapMessage("{msgNoSportClubsFoundMatchingCriteria}","alert");
	addSportMapListItem({sportclub_name:"{msgNoSportClubsFoundMatchingCriteria}",info:""});
	requestFilterComplete();
}

/*
 * Pager elements:
 *
	listPagerFirstPage
	listPagerPageBefore
	listPagerPageAfter
	listPagerLastPage
	listPagerGoTo
	listPagerPageTotal 
*/

function drawSportMapListPager(isRadiusPager,radiusTotalMarkersShown){
	if(!sportMapCleanPager()){
		return;
	}
	if(isRadiusPager && radiusTotalMarkersShown){
		sportMapUseRadiusPager = true;
	}else{
		sportMapUseRadiusPager = false;
	}
	
	var pagerBox = document.getElementById('listPagerNumbersBox');
	if(!pagerBox) return;
	
	var totalMarkers = sportMapMarkers.length;
	if(sportMapUseRadiusPager){
		totalMarkers = radiusTotalMarkersShown;
	}
	sportMapTotalListPages = Math.ceil(totalMarkers / sportMapResultListPerPage);
	sportMapResultShowListPage = 1;

	var numItemsShownInList = sportMapResultListPerPage;
	if(totalMarkers < numItemsShownInList) numItemsShownInList = totalMarkers;
	var resultsTitleItemShown = document.getElementById('resultsTitleItemShown');
	var itemsToShow = (totalMarkers < numItemsShownInList ? totalMarkers : numItemsShownInList);
	if(resultsTitleItemShown) resultsTitleItemShown.innerHTML = "1 - "+itemsToShow;

	var resultsTitleItemTotal = document.getElementById('resultsTitleItemTotal');
	if(resultsTitleItemTotal) resultsTitleItemTotal.innerHTML = totalMarkers;

	//set pager values
	var firstPage = document.getElementById('listPagerFirstPage');
	YAHOO.util.Event.removeListener(firstPage, 'click', sportClubPageNumberClicked);
	YAHOO.util.Event.addListener(firstPage, 'click', sportClubPageNumberClicked,{pageNumber:1});
	if(firstPage) firstPage.title = 1;
	
	var lastPage = document.getElementById('listPagerLastPage');
	YAHOO.util.Event.removeListener(lastPage, 'click', sportClubPageNumberClicked);
	YAHOO.util.Event.addListener(lastPage, 'click', sportClubPageNumberClicked,{pageNumber:sportMapTotalListPages});
	if(lastPage) lastPage.title = sportMapTotalListPages;

	var pageBefore = document.getElementById('listPagerPageBefore');
	YAHOO.util.Event.removeListener(pageBefore, 'click', sportClubPageNumberClicked);
	YAHOO.util.Event.addListener(pageBefore, 'click', sportClubPageNumberClicked,{pageNumber:(sportMapResultShowListPage-1)});
	if(pageBefore) pageBefore.title = 1;
	
	var pageAfter = document.getElementById('listPagerPageAfter');
	var pageAfterNum = 3;
	if(pageAfterNum>sportMapTotalListPages) pageAfterNum = sportMapTotalListPages;
	YAHOO.util.Event.removeListener(pageAfter, 'click', sportClubPageNumberClicked);
	YAHOO.util.Event.addListener(pageAfter, 'click', sportClubPageNumberClicked,{pageNumber:pageAfterNum});
	if(pageAfter) pageAfter.title = pageAfterNum;
	
	var pageTotal = document.getElementById('listPagerPageTotal');
	if(pageTotal) pageTotal.innerHTML = sportMapTotalListPages;
	
	var goTo = document.getElementById('listPagerGoTo');
	if(goTo) goTo.value = "";

	var page_start = 0;
	var page_end = 0;
	if(sportMapTotalListPages > 4){
		page_start = sportMapResultShowListPage < 3 ? 1 : (sportMapResultShowListPage > (sportMapTotalListPages-2) ? (sportMapTotalListPages-4) : sportMapResultShowListPage-2);
		page_end = sportMapResultShowListPage > (sportMapTotalListPages-2) ? sportMapTotalListPages : (sportMapResultShowListPage < 3 ? 5 : sportMapResultShowListPage+2);
	}else{
		page_start = 1;
		page_end = sportMapTotalListPages;
	}
	
	for(var p=page_start;p<=page_end;p++){
		var a = document.createElement("a");
		a.appendChild(document.createTextNode(p+" "));
		a.href = "#";
		a.title = p;
		if(p==1) a.style.fontWeight = "bold";
		YAHOO.util.Event.addListener(a, 'click', sportClubPageNumberClicked,{pageNumber:p});
		pagerBox.appendChild(a);
	}
}

function sportMapCleanPager(){
	cleanPagerNumbers();

	var resultsTitleItemShown = document.getElementById('resultsTitleItemShown');
	if(resultsTitleItemShown) resultsTitleItemShown.innerHTML = "0 - 0";

	var resultsTitleItemTotal = document.getElementById('resultsTitleItemTotal');
	if(resultsTitleItemTotal) resultsTitleItemTotal.innerHTML = "0";

	var pageTotal = document.getElementById('listPagerPageTotal');
	if(pageTotal) pageTotal.innerHTML = "0";
	
	return true;
}

function cleanPagerNumbers(){
	var pagerBox = document.getElementById('listPagerNumbersBox');
	if(!pagerBox){
		return false;
	}

	var numChildren = pagerBox.childNodes.length;
	for(var i=(numChildren-1);i>=0;i--){
		var child = pagerBox.childNodes[i];		
		YAHOO.util.Event.removeListener(child, 'click', sportClubPageNumberClicked);
		pagerBox.removeChild(child);
	}
}

function sportClubPageNumberClicked(evt,params){
	YAHOO.util.Event.stopEvent(evt);
	sportMapSelectListPage(params.pageNumber,evt.currentTarget);
}

function sportMapSelectListPage(pageNum,el){
	if(!sportMapSetPagerToSelectedPage(pageNum,el)) return;

	clearSportMapListItems();
	var startItem = (sportMapResultShowListPage-1) * sportMapResultListPerPage;
	var endItem = startItem + sportMapResultListPerPage;

	if(!sportMapUseRadiusPager){
		if(endItem > sportMapMarkers.length){
			endItem = sportMapMarkers.length;
		}
	}
	
	var resultsTitleItemShown = document.getElementById('resultsTitleItemShown');
	resultsTitleItemShown.innerHTML = (startItem+1)+" - "+endItem;

	var i = 0;
	if(sportMapUseRadiusPager){
		var markerCount = 0;
		for(i=0;i < sportMapMarkers.length; i++){
			var myMarker = sportMapMarkers[i]; 
			var m = myMarker.marker;
			var data = myMarker.data;
			if(myMarker.isVisible){
				if(!data) continue;
				if(markerCount >= startItem && markerCount < endItem){
			        addSportMapListItem(data);
				}
				markerCount++;
			}
		}
	}else{
		for(i=startItem;i < endItem; i++){
			var myMarker = sportMapMarkers[i]; 
			var m = myMarker.marker;
			var data = myMarker.data;
			if(myMarker.isVisible){
				if(!data) continue;
		        addSportMapListItem(data);
			}
		}
	}
}

function goToPageHandleKeyUp(e,pageNum){
	var evtobj = window.event ? event : e;
	var keycode = evtobj.charCode ? evtobj.charCode : evtobj.keyCode;
	if(keycode!=13) return;
	
	sportMapSelectListPage(pageNum);
}

function sportMapSetPagerToSelectedPage(pageNum,el){
	if(pageNum<1) pageNum = 1;
	if(pageNum>sportMapTotalListPages) pageNum = sportMapTotalListPages;
	sportMapResultShowListPage = parseInt(pageNum);
	
	var pagerBox = document.getElementById('listPagerNumbersBox');

	var page_start = 0;
	var page_end = 0;
	if(sportMapTotalListPages > 4){
		page_start = sportMapResultShowListPage < 3 ? 1 : (sportMapResultShowListPage > (sportMapTotalListPages-2) ? (sportMapTotalListPages-4) : sportMapResultShowListPage-2);
		page_end = (sportMapResultShowListPage > (sportMapTotalListPages-2)) ? sportMapTotalListPages : (sportMapResultShowListPage < 3 ? 5 : sportMapResultShowListPage+2);
	}else{
		page_start = 1;
		page_end = sportMapTotalListPages;
	}

	var numChildren = pagerBox.childNodes.length;
	var firstChildNum = parseInt(pagerBox.childNodes[0].title);
	var lastChildNum = parseInt(pagerBox.childNodes[(numChildren-1)].title);
	if(sportMapResultShowListPage > lastChildNum || sportMapResultShowListPage < firstChildNum){
		cleanPagerNumbers();
		for(var p=page_start;p<=page_end;p++){
			var a = document.createElement("a");
			a.appendChild(document.createTextNode(p+" "));
			a.href = "#";
			a.title = p;
			YAHOO.util.Event.addListener(a, 'click', sportClubPageNumberClicked,{pageNumber:p});
			pagerBox.appendChild(a);
		}
	}
	for(var i=0;i < numChildren;i++){
		var child = pagerBox.childNodes[i];
		if(pageNum==child.title){
			child.style.fontWeight = "bold";
		}else{
			child.style.fontWeight = "";
		}
	}
	
	var pageBefore = document.getElementById('listPagerPageBefore');
	YAHOO.util.Event.removeListener(pageBefore, 'click', sportClubPageNumberClicked);
	YAHOO.util.Event.addListener(pageBefore, 'click', sportClubPageNumberClicked,{pageNumber:(sportMapResultShowListPage-1)});
	pageBefore.title = (sportMapResultShowListPage-1);

	var pageAfter = document.getElementById('listPagerPageAfter');
	YAHOO.util.Event.removeListener(pageAfter, 'click', sportClubPageNumberClicked);
	YAHOO.util.Event.addListener(pageAfter, 'click', sportClubPageNumberClicked,{pageNumber:(sportMapResultShowListPage+1)});
	pageAfter.title = (sportMapResultShowListPage+1);
	
	var goTo = document.getElementById('listPagerGoTo');
	goTo.value = sportMapResultShowListPage;
	
	return true;
}

function findFilterSportMapRadiusCenter(radius,address,showMarker){
	var geocoder = new GClientGeocoder();    
	geocoder.getLatLng(
						address,
						function(point) {
					       if (!point) {
						       	showSportMapMessage("{msgProvidedAddressNotFound} "+address,"error");
								sportMapCleanPager();
								clearSportMapListItems();
								requestFilterComplete();
					       } else {
							   if(showMarker){
								   var centerMarker = new GMarker(point);
								   m.map.addOverlay(centerMarker);
							   }
							   showSportMapMarkersWithinGivenRadiusFromPoint(radius,point);
					       }
					   }
				   );	
}

function showSportMapMarkersWithinGivenRadiusFromPoint(radius,center){
	var markers = sportMapMarkers;
	var markersShown = 0;
	for(var i=0;i < markers.length; i++){
		var myMarker = markers[i]; 
		var m = myMarker.marker;
		var data = myMarker.data;
		if(center.distanceFrom(m.getLatLng())<=radius){
//			m.show();
			markersShown++;
			myMarker.isVisible = true;
			if(!data){
		        data = {sportclub_name:m.getTitle(),info:myMarker.info,sportclub_address_latitude:m.getLatLng().lat(),sportclub_address_longitude:m.getLatLng().lng()};
			}
	        if(markersShown<=sportMapResultListPerPage) addSportMapListItem(data);
		}else{
//			m.hide();
			myMarker.isVisible = false;
		}
	}
	if(markersShown){
		drawSportMapListPager(true,markersShown);
	}
	showSportMapMessage("{msgYourSearchHasNumHits}","",[markersShown]);
	drawSportMapRadiusCircle(radius,center);
	requestFilterComplete();
}

function drawSportMapRadiusCircle(radius, center){
	if (radiusCircle) {
		m.map.removeOverlay(radiusCircle);
	}
	m.map.setCenter(center)

	var bounds = new GLatLngBounds();
	var circlePoints = [];
	with (Math) {
		var d = (radius/1000)/6378.8;	// radians using KM

		var lat1 = (PI/180)* center.lat(); // radians
		var lng1 = (PI/180)* center.lng(); // radians

		for (var a = 0 ; a < 361 ; a++ ) {
			var tc = (PI/180)*a;
			var y = asin(sin(lat1)*cos(d)+cos(lat1)*sin(d)*cos(tc));
			var dlng = atan2(sin(tc)*sin(d)*cos(lat1),cos(d)-sin(lat1)*sin(y));
			var x = ((lng1-dlng+PI) % (2*PI)) - PI ; // MOD function
			var point = new GLatLng(parseFloat(y*(180/PI)),parseFloat(x*(180/PI)));
			circlePoints.push(point);
			bounds.extend(point);
		}

		if (d < 1.5678565720686044) {
			radiusCircle = new GPolygon(circlePoints, radiusCircleColor, 2, 1, radiusCircleColor, 0.25);	
		}
		else {
			radiusCircle = new GPolygon(circlePoints, radiusCircleColor, 2, 1);	
		}
		m.map.addOverlay(radiusCircle); 

		m.map.setZoom(m.map.getBoundsZoomLevel(bounds));
	}
}

function addSportMapListItem(data){
	var resultsList = document.getElementById("resultsList");
	var item = document.createElement("tr");

	var listItemToClone = document.getElementById("listItemLabel"); 
	if(!listItemToClone) return;
	
	var el = listItemToClone.cloneNode(true);
		
	el.id = "";
	el.innerHTML = el.innerHTML.replace(/%sportclub_name%/gi,data.sportclub_name);
	el.innerHTML = el.innerHTML.replace(/%id_sportclub%/gi,data.sportClubId);
	item.appendChild(el);

	if(data.flagIcon && data.flagIcon!=undefined){
		el = document.getElementById("listItemFlag").cloneNode(true);
		el.id = "";
		var firstChild = el.firstChild;
		el.removeChild(firstChild);
		var flagIcon = "/f/images/flags/"+data.flagIcon+".gif";
		var img = document.createElement("img");
		img.src = flagIcon;
		img.width = 15;
		img.height = 11;
		el.appendChild(img);
		item.appendChild(el);
	}
	
	if(data.distance && data.distance!=undefined){
		el = document.getElementById("listItemDistance").cloneNode(true);
		el.id = "";
		el.innerHTML = el.innerHTML.replace(/%distance%/gi,data.distance);
		item.appendChild(el);
	}
	
	if(data.localAddress && data.localAddress!=undefined){
		el = document.getElementById("listItemAddress").cloneNode(true);
		el.id = "";
		el.innerHTML = el.innerHTML.replace(/%localAddress%/gi,data.localAddress);
		item.appendChild(el);
	}

	if(data.moreInfoUrl && data.moreInfoUrl!=undefined){
		el = document.getElementById("listItemMoreInfo").cloneNode(true);
		el.id = "";
		el.innerHTML = el.innerHTML.replace(/%moreInfoUrl%/gi,data.moreInfoUrl);
		item.appendChild(el);
	}

	if((resultsList.childNodes.length%2)<1){
		item.className = "odd";
	}
	resultsList.appendChild(item);
}

function clearSportMapListItems(){
	var resultsList = document.getElementById("resultsList");
	if(!resultsList) return;
	var numChildren = resultsList.childNodes.length;
	for(var i=(numChildren-1);i>=0;i--){
		var child = resultsList.childNodes[i];		
		resultsList.removeChild(child);
	}
}

function handleSportMapClickListItem(sportClubId){
	for(var i=0;i < sportMapMarkers.length; i++){
		var myMarker = sportMapMarkers[i];
		var ma = myMarker.marker;
		var data = myMarker.data;
		if(data.sportClubId==sportClubId){
			ma.openExtInfoWindow(
		              m.map,
		              "sportMapInfoWindow",
		              decodeURIComponent(myMarker.info),
		              {beakOffset:5}
		            );			
			break;
		}
	}
}

function showSportMapMessage(text,type,params){
	var msg = document.getElementById("messageField");
	if(!msg) return;

	var className = "sportClubMapSearchMessageNormal";
	switch(type){
		case 'error':
			className = "sportClubMapSearchMessageError";
			break;
		case 'alert':
			className = "sportClubMapSearchMessageAlert";
			break;
	}
	msg.className = className;
	if(params && params.length){
		for(var i=0;i < params.length;i++){
			var find = "%"+i+"%"
			text = text.replace(find,params[i]);
		}
	}
	msg.innerHTML = text;
	msg.style.display = "block";
}

function hideSportMapMessage(){
	var msg = document.getElementById("messageField");
	if(!msg) return;

	msg.innerHTML = "";
	msg.style.display = "none";
}

function clearSportMap(){
	if (radiusCircle) {
		m.map.removeOverlay(radiusCircle);
	}
	m.getManager().clearMarkers();
	sportMapMarkers = [];
	m.getManager().refresh();
}

function showSportMapExtendedSearch(){
	var simpleSearchButton = document.getElementById('btnSimpleSearch');
	var extendedSearchButton = document.getElementById('btnExtendedSearch');
	simpleSearchButton.style.display = "block";
	extendedSearchButton.style.display = "none";

	var extSearch = document.getElementById('extendedSearch');
	if(!extSearch)return;
	extSearch.style.display = "block";

	var inputs = extSearch.getElementsByTagName("input");
	for(var i=0;i < inputs.length;i++){
		inputs[i].checked = true;
	}

	var selects = extSearch.getElementsByTagName("select");
	for(var s=0;s < selects.length;s++){
		selects[s].selectedIndex = 0;
	}
}

function hideSportMapExtendedSearch(){
	var simpleSearchButton = document.getElementById('btnSimpleSearch');
	var extendedSearchButton = document.getElementById('btnExtendedSearch');
	simpleSearchButton.style.display = "none";
	extendedSearchButton.style.display = "block";
	
	var extSearch = document.getElementById('extendedSearch');
	if(!extSearch)return;
	extSearch.style.display = "none";
	
	var inputs = extSearch.getElementsByTagName("input");
	for(var i=0;i < inputs.length;i++){
		inputs[i].checked = false;
	}

	var selects = extSearch.getElementsByTagName("select");
	for(var s=0;s < selects.length;s++){
		selects[s].selectedIndex = 0;
	}
}

addLoadCallback(sportclubMapLoadedCallback);

