jQuery.noConflict(); 

var map;
var markers = false;

/* SETTINGS */
var court_icon = "/map/prod/images/square-court-icon.png";
var court_icon_visited = "/map/prod/images/square-court-icon-star.png";
var hotel_icon = "/map/prod/images/square-hotel-red.png";
var hotel_icon_visited = "/map/prod/images/square-hotel-red-star.png";
var resort_icon = "/map/prod/images/resort.png";
var slideshow_enabled = false;
var slideshow_image_width = 100;
var slideshow_image_height = 110;
/* Data Source URL */
var data_url = 'map/prod/data.php';
var country = 'SE';

var show_more_url_SE = "http://www.golfsverige.dk/bestilling/art/";
var show_more_url_DE = "http://www.golftyskland.dk/golflanes/art/";

var show_more_url = "";

var combo_courts = document.createElement("select");
jQuery(combo_courts).attr('id', 'combo_courts');
combo_courts.options.add(new Option("Vælg klub", -1));
var combo_hotels = document.createElement("select");
jQuery(combo_hotels).attr('id', 'combo_hotels');
combo_hotels.options.add(new Option("Vælg hotel", -1));
var combo_resorts = document.createElement("select");
jQuery(combo_resorts).attr('id', 'combo_resorts');
combo_resorts.options.add(new Option("Vælg resort", -1));

/* Number of Locations to use for nearest court/hotels/resorts */
var num_of_locations = 3;

/* Tooltip */
var tooltip = '';

var api_key = "";
//jQuery('#map_canvas').html('Vi arbejder på at opdatere kortet i øjeblikket.');

switch(window.location.hostname) {
	case 'www.golfsverige.dk':
		api_key = "ABQIAAAAO_QWvoGZRjT6iuU2V08mFRQ35vCYyE4l-AEHKmwU_lN3JmOkVBT9ONTuNcZ5nfkAsfvgArDleoT14w";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	case 'www.golfisverige.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhRTcY8fPhE0o9nuhEqZugInOTcXThTd_tl1OlFKgeNLvgQ83LNwke46kA";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	case 'golfisverige.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhQCRha1HGpd1GTEVApgsgB0Tnwt2hRq7xsQrMYAXCyKiTL3pyu4O2W8UA";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	case 'www.golf-sydsverige.dk':
	case 'golf-sydsverige.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhRoXKIzODkehJEu0vancYXi6ctZ4BQgTLV2Kyks4HOTk7iou4XG00tDrQ";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	case 'www.golfsydsverige.dk':
	case 'golfsydsverige.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhQ-V21tSmV5va7FsJq1EDvoCKlnphShfGa4rVZiKC14qq1apdR0ST5FFQ";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	case 'www.svenskegolfbaner.dk':
	case 'svenskegolfbaner.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhTQOeDzJHa-50M0hnsSEqAfHINnuxT_l7hKQIfc2dScuKfWlpYswDpjEg";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	case 'www.svenskgolf.dk':
	case 'svenskgolf.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhTgTTl3u8KHzFCR7ft45YHu6RQNdxRQxx1eFRTshXgIRwOGGKFE5TFMhg";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;	
	case 'www.sverige-golf.dk':
	case 'sverige-golf.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhSWZgQtv_DVVvNxbDcyBfEFeI-zYhQ4VPY7Gi3Oz2J2y3XN3wzQgj5HQQ";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	case 'www.sverigegolf.dk':
	case 'sverigegolf.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhTpxczdk_WEFmhb4ccObTCQ6zaV5hRsRpeHtO012RE7hfFOEG8FM386jQ";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;	
	case 'www.sydsvenskgolf.dk':
	case 'sydsvenskgolf.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhS2nJsmwKKbm4mAqtHB8teoZ7tqWBSLrJ7vDxrZGQ-FB4ORRA6NhLnoFg";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;	
	
	case 'www.skanegolf.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhQPw2OwO2htnSWy3SCxXtoHl6ClnBRZpZlhDCm-7a6UrDAZ-bjpZructw";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	case 'skanegolf.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhQhrTdhMJTi9L9jHvMFHvAMSfL6QBTOo7m8rBvnlvzOKPwZ4lMOxpKo3Q";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	case 'www.golftyskland.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhTcHN2dwHVzr8n4JgcHoeMlAxqRfRReLdv5LCZ-Btwe_oGP9wT6SOvQJg";
		country = 'DE';
		show_more_url = show_more_url_DE;
	break;
	case 'www.golftyskland.se':
		
		//api_key = "ABQIAAAAO_QWvoGZRjT6iuU2V08mFRSr8uD2kv0LMOBq2nvGYb4DgbOReRSk7MrZGe7Nx-UMsqT8SRDI2c56kw";
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhSr8uD2kv0LMOBq2nvGYb4DgbOReRQGaA7QF1URGzAodYEKdTrsSsb-Vg";
		country = 'DE';
		show_more_url = show_more_url_DE;
	break;
	case 'www.golf-nordtyskland.dk':
	case 'golf-nordtyskland.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhQi3JU4J2hU2crvr1btdQ9534sA6BTlg-H79bqZSBsc3VzTWl7E2MmEqg";
		country = 'DE';
		show_more_url = show_more_url_DE;
	break;
	case 'www.golf-tyskland.dk':
	case 'golf-tyskland.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhR3PTHnHU1gC84Ff3qxHaXZCkEQ1BTp73ZbJIPBg8OXAhpkZgNv7msPZQ";
		country = 'DE';
		show_more_url = show_more_url_DE;
	break;
	
	case 'www.konferencesverige.dk':
	case 'konferencesverige.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhQ-8WQatdzQ35Pk4kziyWpE4hKjdxS27Q0hXKA8vJmv5cpMvu-de4NaIA";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	
	case 'www.konference-sverige.dk':
	case 'konference-sverige.dk':
		api_key = "ABQIAAAAvmfSo6yyaUdrbP4d7i-KQhSOka6CE00iyuCiBvdRd_1UAheIJRSa7qTKcmQT6oDvUoXUZRRtNbdmCg";
		country = 'SE';
		show_more_url = show_more_url_SE;
	break;
	
	default:
		api_key = "ABQIAAAAO_QWvoGZRjT6iuU2V08mFRQ35vCYyE4l-AEHKmwU_lN3JmOkVBT9ONTuNcZ5nfkAsfvgArDleoT14w";
		country = 'SE';
		show_more_url = show_more_url_SE;
		
}

jQuery.getScript("http://maps.google.com/maps?file=api&v=2&key="+api_key+"&sensor=true");
//console.log('google map script');
//jQuery('head').append('<script src="http://maps.google.com/maps?file=api&v=2&key='+api_key+'&sensor=true&callback=initialize" type="text/javascript" />');
// &async=2&callback=initialize
jQuery(document).ready(function() {
	//console.log('document ready');
	//jQuery.getScript('http://maps.google.com/maps?file=api&v=2&key='+api_key+'&sensor=true', function() {
  		//alert('http://maps.google.com/maps?file=api&v=2&key='+api_key+'&sensor=true');
  		//initialize();
	//});
	
	if (/Firefox[\/\s](\d+\.\d+)/.test(navigator.userAgent)){
		//alert('FF');
		var ffversion=new Number(RegExp.$1) // capture x.x portion and store as a number
		if (ffversion>=4) {
			jQuery('#map_canvas').hide();
		}
		else {
			initialize();	
		}
		
	}
	else {
		initialize();	
	}
	
	//initialize();	
	//jQuery.getScript("http://maps.google.com/maps?file=api&v=2&key="+api_key+"&sensor=true&callback=initialize");
});



function initialize() {
	//console.log('init()');
// MarkerIconControl
function MarkerIconControl() {}
	MarkerIconControl.prototype = new GControl();

	MarkerIconControl.prototype.initialize = function(map) {
      
	var container = document.createElement("div");

    var courtDiv = document.createElement("div");
      this.setButtonStyle_(courtDiv);
      container.appendChild(courtDiv);
      jQuery(courtDiv).append('<img src="'+court_icon+'" /><br />Bane<br /><img src="'+hotel_icon+'" /><br />Hotel');
      
	  //GEvent.addDomListener(zoomInDiv, "click", function() {
       // map.zoomIn();
      //});

      map.getContainer().appendChild(container);
      return container;
	}

	// Control position
	MarkerIconControl.prototype.getDefaultPosition = function() {
		return new GControlPosition(G_ANCHOR_BOTTOM_LEFT , new GSize(5, 40));
	}

	// Sets the proper CSS for the given button element.
	MarkerIconControl.prototype.setButtonStyle_ = function(button) {
		
	    button.style.color = "#000000";
	    button.style.backgroundColor = "white";
	    button.style.font = "small Arial";
	    button.style.border = "1px solid black";
	    button.style.padding = "1px";
	    button.style.marginBottom = "1px";
	    button.style.textAlign = "center";
	    button.style.width = "4em";
	    button.style.cursor = "pointer";
	}
	
	
      if (GBrowserIsCompatible()) {
      	if (jQuery('#combo_visible').val() != '1') {
      		jQuery('#selectors').hide();
      	}
      	      	
      	map = new GMap2(document.getElementById("map_canvas"));
	    map.addControl(new MarkerIconControl());     	
      	
		map.setCenter(new GLatLng(jQuery('#latitude').val(), jQuery('#longitude').val()),parseInt(jQuery('#zoomlevel').val()) );
      	map.setUIToDefault();
                        
        loadMarkers();
		appendSelectors();
		
		// Set up marker mouseover tooltip div
      	tooltip = document.createElement("div");
      	document.getElementById("map_canvas").appendChild(tooltip);
      	tooltip.style.visibility="hidden";
		
		/* Add event listener */
		/*
		GEvent.addListener(map, 'infowindowopen', function(marker) {
			// SlideShow - Resize images to fit 
			
			$('.slideshow').cycle({
				fx: 'fade',
				containerResize: 0
			});		
			resizeImages('slideshow',100, 110);
						
		});
		*/		
	} 
	else {
		alert("Google Maps API er ikke kompatibel med denne browser. Vi beklager.");
	} 
	jQuery('#map_canvas').append('Vi arbejder på at opdatere kortet i øjeblikket.');
}

function appendSelectors() {
	/* Bind onchange event */
	jQuery(combo_courts).change(function() {
		jQuery('#combo_hotels').val(-1);
   		panToLocation(jQuery(this).attr('value'));
	});
	
	jQuery(combo_hotels).change(function() {
		jQuery('#combo_courts').val(-1);
   		panToLocation(jQuery(this).attr('value'));
	});
	/*
	$(combo_resorts).change(function() {
   		panToLocation($(this).attr('value'));
	});
	*/
	/* Append to page */
	jQuery('#selectors').append(combo_courts);
	jQuery('#selectors').append(combo_hotels);
	//$('#selectors').append(combo_resorts);
}

function panToLocation(index) {
	if (index >= 0) {
		map.setZoom(12);
		map.panTo(new GLatLng(parseFloat(markers[index].longitude), parseFloat(markers[index].latitude)));
		markers[index].marker_obj.openInfoWindowTabsHtml(createHtml(markers[index]));
			
		updateMarkerIcon(markers[index].marker_obj, markers[index].type);
	}
} 



function loadMarkers() {
	markers = false;
	//var d = new Date(); ?&t='+d.getTime()

	jQuery.ajax({
		cache: false,
		type: 'GET',		
		url: 'http://'+window.location.hostname+'/'+data_url + '?country='+country,
	  	async: false,
	  	dataType: 'json',
	  	success: function(data) {
			markers = data;
	  	},
	  	
	  	error:function (xhr, ajaxOptions, thrownError){
                    console.log(xhr);
                    console.log(thrownError);
        } 
		 
	});

	if (markers) {
		for (var i in markers) {
			if (markers[i].type != "0") {
				
				var point = new GLatLng(parseFloat(markers[i].latitude), parseFloat(markers[i].longitude));
				markers[i].point = point;
				
				var opt = new Option(markers[i].title, i);
				if (markers[i].type == "1") {
					combo_courts.options.add(opt);
					
				}
				else if (markers[i].type == "4") {
					combo_hotels.options.add(opt);
					
				}
				else if (markers[i].type == "3") {
					combo_resorts.options.add(opt);
					
				}
				delete opt;
				
				map.addOverlay(createMarker(point, createIcon(markers[i].type), markers[i], i));
				
			}
		}
	}	
}

function createIcon(type) {
	
	var icon = new GIcon();
	if (type == '1') {
		icon.image = court_icon;
		//icon.shadow = "/golf/images/shadow.png";
		icon.iconSize = new GSize(18, 21);
		//icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(9, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
	}
	else if (type == '4') {
		icon.image = hotel_icon;
		//icon.shadow = "/golf/images/shadow.png";
		icon.iconSize = new GSize(18, 21);
		//icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(9, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
	}
	else if (type == '3') {
		icon.image = resort_icon;
		//icon.shadow = "/golf/images/shadow.png";
		icon.iconSize = new GSize(18, 21);
		//icon.shadowSize = new GSize(22, 20);
		icon.iconAnchor = new GPoint(9, 20);
		icon.infoWindowAnchor = new GPoint(5, 1);
	}
	return icon;
}

function updateMarkerIcon(marker, type) {
	if (type == '1') {
		marker.setImage(court_icon_visited);
	}
	else if (type == '4') {
		marker.setImage(hotel_icon_visited);
	}
}

function createMarker(point, icon, obj, index) {
	
 	var marker = new GMarker(point, icon);
	
	GEvent.addListener(marker, "click", function() {
		
		var html = createHtml(obj);		
		marker.openInfoWindowHtml(html);
		
		updateMarkerIcon(marker, markers[index].type);
		
		updateCombos(obj.type, obj.title, index);
	});
	//  ======  The new marker "mouseover" and "mouseout" listeners  ======
	marker.tooltip = '<div class="tooltip">'+obj.title+'</div>';

	
	GEvent.addListener(marker,"mouseover", function() {
    	showTooltip(marker);
	});
	        
    GEvent.addListener(marker,"mouseout", function() {
		tooltip.style.visibility="hidden";
	});
	
	
	obj.marker_obj = marker;
	return marker;
}

function updateCombos(type, title, index) {
	/* Reset Combos */
	jQuery('#combo_courts').val(-1);
	jQuery('#combo_hotels').val(-1);
	//$('#combo_resorts').val(-1);
	
	/* Set Combo selector to the current selected */
	if (type == '1') {
		jQuery('#combo_courts').val(index);	
	}
	else if (type == '4') {
		jQuery('#combo_hotels').val(index);
	}
	else if (type == '3') {
		
	}
}

function showTooltip(marker) {
  
    tooltip.innerHTML = marker.tooltip;
	var point=map.getCurrentMapType().getProjection().fromLatLngToPixel(map.getBounds().getSouthWest(),map.getZoom());
	var offset=map.getCurrentMapType().getProjection().fromLatLngToPixel(marker.getPoint(),map.getZoom());
	var anchor=marker.getIcon().iconAnchor;
	var width=marker.getIcon().iconSize.width;
	var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(offset.x - point.x - anchor.x + width,- offset.y + point.y +anchor.y)); 
	pos.apply(tooltip);
	tooltip.style.visibility="visible";
}


function createHtml(obj) {
	
	var str = '';
	if (obj.type == '1') {
		str = '<div id="map_popup" class="map_popup">';
		if (slideshow_enabled) {
			str += createSlideShowHtml(obj);	
		}
		
		/* Show logo */
		str += '<div class="single_image">';
		str += '<img src="http://www.golfsverige.dk/uploads/pics/'+obj.image+'" alt="" width="75" />';
		str += '</div>';
	
		str += '<strong>Bane</strong><br /><strong>'+obj.title+'</strong><br>Tlf: '+obj.phone+'<br>Fra Kbh/Tid: '+obj.eta+'<br><a href="http://www.golfsverige.dk/bestilling/art/'+obj.url+'.html">Vis mere</a>';
		str += '<hr class="map_hr" />';
		str += '<div id="section_1" class="popup_section">';
		var locations = nearestLocation(obj);
		str += 'Nærmeste andre baner:<br />';
		
		for (var i in locations.courts) {
			str += '<a href="javascript:void(0)" onclick="updateCombos(\''+markers[locations.courts[i].index].type+'\', \''+markers[locations.courts[i].index].title+'\');panToLocation('+locations.courts[i].index+')">'+markers[locations.courts[i].index].title+'</a> ';	
			str += '('+Math.round((locations.courts[i].distance/1000)) + ' km)<br />';
			
		}
		str += '<br />Nærmeste hoteller:<br />';
		
		for (var i in locations.hotels) {
			str += '<a href="javascript:void(0)" onclick="updateCombos(\''+markers[locations.hotels[i].index].type+'\', \''+markers[locations.hotels[i].index].title+'\');panToLocation('+locations.hotels[i].index+')">'+markers[locations.hotels[i].index].title+'</a> ';	
			str += '('+Math.round((locations.hotels[i].distance/1000)) + ' km)<br />';
			
		}
		
		str += '<br /><a href="javascript: void(0)" onclick="ChangePopUpContent(\'section_2\');">Tip en ven</a>';
		str += '</div>';
		str += '<div id="section_2" class="popup_section" style="display:none;">';
		str += '<table><tr><td colspan="2">Send et tip om denne golfbane til en bekendt:</td></tr>';
		str += '<tr><td>Dit navn:</td><td><input type="text" id="tip_from" /><span id="name_warning" style="font-color:#FF0000;display:none">!</span></td></tr><tr><td>Email:</td><td><input type="text" id="tip_receiver" /><span id="email_warning" style="font-color:#FF0000;display:none">!</span></td></tr><tr><td colspan="2" align="center"><img onclick="sendTip('+obj.type+', '+obj.uid+');" src="map/images/btn_send.gif" border="0" alt="Send" id="btn_send" /><br /><span id="lbl_confirmation" style="font-size:60%;display:none">Dit tip blev sendt!</span></td></tr></table>';
		
		str += '<a href="javascript: void(0)" onclick="ChangePopUpContent(\'section_1\');">Tilbage</a></div></div>';
		
		
	}
	else if (obj.type == '4') {
		
		str = '<div id="map_popup" class="map_popup">';
		if (slideshow_enabled) {
			str += createSlideShowHtml(obj);	
		}
		str += '<strong>Hotel</strong><br /><strong>'+obj.title+'</strong><br>Tlf: '+obj.phone+'<br>Fra Kbh/Tid: '+obj.eta+'<br><a href="http://www.golfsverige.dk/bestilling/art/'+obj.url+'.html">Vis mere</a><hr class="map_hr" />';
		
		var locations = nearestLocation(obj);
		
		str += '<div id="section_1" class="popup_section">';
		str += 'Nærmeste baner:<br />';
		
		for (var i in locations.courts) {
			str += '<a href="javascript:void(0)" onclick="updateCombos(\''+markers[locations.courts[i].index].type+'\', \''+markers[locations.courts[i].index].title+'\');panToLocation('+locations.courts[i].index+')">'+markers[locations.courts[i].index].title+'</a> ';	
			str += '('+Math.round((locations.courts[i].distance/1000)) + ' km)<br />';
			
		}
		str += '<br />Nærmeste andre hoteller:<br />';
		
		for (var i in locations.hotels) {
			str += '<a href="javascript:void(0)" onclick="updateCombos(\''+markers[locations.hotels[i].index].type+'\', \''+markers[locations.hotels[i].index].title+'\');panToLocation('+locations.hotels[i].index+')">'+markers[locations.hotels[i].index].title+'</a> ';	
			str += '('+Math.round((locations.hotels[i].distance/1000)) + ' km)<br />';
			
		}
		str += '<br /><a href="javascript: void(0)" onclick="ChangePopUpContent(\'section_2\');">Tip en ven</a>';
		str += '</div>';
		
		str += '<div id="section_2" class="popup_section" style="display:none;">';
		str += '<table><tr><td colspan="2">Send et tip om dette hotel til en bekendt:</td></tr>';
		str += '<tr><td>Dit navn:</td><td><input type="text" id="tip_from" /><span id="name_warning" style="font-color:#FF0000;display:none">!</span></td></tr><tr><td>Email:</td><td><input type="text" id="tip_receiver" /><span id="email_warning" style="font-color:#FF0000;display:none">!</span></td></tr><tr><td colspan="2" align="center"><img onclick="sendTip('+obj.type+', '+obj.uid+');" src="map/images/btn_send.gif" border="0" alt="Send" id="btn_send" /><br /><span id="lbl_confirmation" style="font-size:60%;display:none">Dit tip blev sendt!</span></td></tr></table>';
		
		str += '<a href="javascript: void(0)" onclick="ChangePopUpContent(\'section_1\');">Tilbage</a></div></div>';
		
		
	}
	else if (obj.type == '3') {
		
	}
	else {
		return '';
	}
	
	return str;
}

function nearestLocation(obj) {
	
	var courts = [];
	var hotels = [];
	
	for (var x = 0; x < num_of_locations; x++) {
		var court = new Object();
		court.distance = 5000000;
		court.index = 0;
		courts.push(court);
		
		var hotel = new Object();
		hotel.distance = 5000000;
		hotel.index = 0;
		hotels.push(hotel);
	}

	var should_sort = false;
	
	for (var i in markers) {
		if (markers[i].type != "3") {				
			
			if (markers[i].marker_obj != undefined) {
				if (markers[i].type == '1') {
					var d = obj.point.distanceFrom(markers[i].marker_obj.getPoint());
				
					if (d > 0) {		
						should_sort = false;
						if (courts[num_of_locations-1].distance > d) {
							should_sort = true;
						}
		
						if (should_sort) {
							
							var new_location = new Object();
							new_location.distance = d;
							new_location.index = i;
							courts = sliceSort(new_location, courts);
						}
					}
				}
				
				if (markers[i].type == '4') {
					var d = obj.point.distanceFrom(markers[i].marker_obj.getPoint());
				
					if (d > 0) {		
						should_sort = false;
						if (hotels[num_of_locations-1].distance > d) {
							should_sort = true;
						}
		
						if (should_sort) {
							
							var new_location = new Object();
							new_location.distance = d;
							new_location.index = i;
							hotels = sliceSort(new_location, hotels);
						}
					}
				}
			}
		}
	}
	
	var locations = {'courts':courts, 'hotels':hotels};
	return locations;
}

function sliceSort(new_location, locations) {
	
		if(new_location.distance < locations[0].distance) {
			var temp = new Array();
			temp.push(new_location);
			temp = temp.concat(locations);
			return temp.slice(0, num_of_locations);
		}
		else {
			var position = 0;
			for (var i in locations) {
				if (locations[i].distance > new_location.distance) {
					position = i;	
					break;
				}
			}	
			var a = locations.slice(0, position);
			a.push(new_location);
			a = a.concat(locations.slice(position, locations.length));	
			return a.slice(0, num_of_locations);
		}
	
}
/*
function bubbleSort(array_to_sort) {
	var dummy = "";
    for (var i=0; i<(array_to_sort.length-1); i++) {
        for (var j=i+1; j<array_to_sort.length; j++) {
            if (array_to_sort[j].distance < array_to_sort[i].distance) {
                dummy = array_to_sort[i];
                array_to_sort[i] = array_to_sort[j];
                array_to_sort[j] = dummy;
            }
        }
    }
}
*/
function createSlideShowHtml(obj) {
	var str = '';
	if (obj.images != undefined) {
		if (obj.images.length > 0) {
			if (obj.images.length > 1) {	
				str += '<div class="slideshow" style="margin-right:'+slideshow_image_width+'px">';
				for(var i in obj.images) {
					//console.log(obj.images[i]);
					str += '<img src="'+obj.images[i]+'" alt="" />';
				}
				str += '</div>';
			}
			else {
				str = '<div class="single_image">';
				str += '<img src="'+obj.images[0]+'" alt="" />';
				str += '</div>';
			}
		}
	}

	return str;
}

function resizeImages(container, maxWidth, maxHeight) {
	 jQuery('.'+container+' img').each(function() {
	 
        var ratio = 0;  // Used for aspect ratio
        var width = $(this).width();    // Current image width
        var height = $(this).height();  // Current image height
        //console.log('maxWidth:'+maxWidth+' maxHeight:'+maxHeight);
        
 		//console.log(width + ' x '+height);
        // Check if the current width is larger than the max
        if(width > maxWidth){
        	//console.log('width too high');
            ratio = maxWidth / width;   // get ratio for scaling image
            jQuery(this).attr("width", maxWidth); // Set new width
            jQuery(this).attr("height", height * ratio);  // Scale height based on ratio
            height = height * ratio;    // Reset height to match scaled image
            width = width * ratio;    // Reset width to match scaled image
        }
 
        // Check if current height is larger than max
        if(height > maxHeight){
            //console.log('height too high');
			ratio = maxHeight / height; // get ratio for scaling image
            jQuery(this).attr("height", maxHeight);   // Set new height
            jQuery(this).attr("width", width * ratio);    // Scale width based on ratio
            width = width * ratio;    // Reset width to match scaled image
        }
        	//console.log(this);
    });
}

function ChangePopUpContent(section) {
	jQuery('.popup_section').hide();
	var options = {};
	jQuery("#"+section).fadeIn('slow', function() { });		
}
function sendTip(type, uid) {
	
	jQuery("#name_warning").hide();
	jQuery("#email_warning").hide();
	jQuery("#lbl_confirmation").hide();
	
	if (jQuery("#tip_from").val() != '' && jQuery("#tip_receiver").val() != '') {
		if (validateEmail(jQuery("#tip_receiver").val())) {
			jQuery("#btn_send").attr("src", "map/images/ajax-loader.gif");
			jQuery.post("map/prod/sendtip.php", { type:type, uid:uid, from_name: jQuery("#tip_from").val(), to_email: jQuery("#tip_receiver").val() },
	   			function(data){
	     			jQuery("#btn_send").attr("src", "map/images/btn_send.gif");
					jQuery("#tip_receiver").val('');
					jQuery("#tip_from").val('');
					jQuery("#lbl_confirmation").fadeIn('slow', function() { });	
						
	   		});
   		}
   		else {
   			jQuery("#email_warning").show();
   		}
   	}
   	else {
   		jQuery("#name_warning").show();
   		jQuery("#email_warning").show();
   	}
	
}
function validateEmail(email) {
	var rege = /^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;
	if(rege.test(email)){ 
		return true;
	}
	return false;
}
