//used to build a map with all points
function buildMap(){
	var zoom = 4;
	var center = true;
	
	mapResultsString('',0,0,zoom,center);
	
}

//used to build a map with a single point
function buildDetailMap(map_id){
	var zoom = 13;
	var center = false;
	
	mapResultString(map_id,zoom,center);
}

//used to build a map with search results
function buildSearchMap(address){
	var zoom = 11;
	var center = false;
	
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(address,function(point){
		var ord = parseLatLong(point.toString());
		mapResultsString(address,ord[0],ord[1],zoom,center);
	});
	
}

function mapResultString(map_id,zoom,center){
	var pars = 'id='+map_id;
	
	$.ajax({
	type: "POST",
	url: "ajax.map-result-detail.php",
	data: pars,
	success: function(msg){
		//$("geodata").text(msg);
		var json = eval(msg);
		loadMap(json,zoom,center);
	}
	});
}

function mapResultsString(searchTerm,lat,lon,zoom,center){
	var pars = 'term='+searchTerm+'&lat='+lat+'&long='+lon;
	
	$.ajax({
	type: "POST",
	url: "ajax.map-results.php",
	data: pars,
	success: function(msg){
		if(msg == 0){ 
			alert('Sorry, no makeout points matched your search.');
			window.location = '/home/';
		}
		
		//$("geodata").text(msg);
			var json = eval(msg);
			loadMap(json,zoom,center);
	}
	});
}

function loadMap(locations,zoom,center) {
	
	var map = new GMap2(document.getElementById("map"));
if(locations != 0){
	var cnt_lat = locations[0].latitude;
	var cnt_lon = locations[0].longitude;
	
	for(i=0;i<locations.length;i++){
		var geocoder = new GClientGeocoder();
		var address = locations[i];
		makeWindow(geocoder,address,map,zoom,cnt_lat,cnt_lon)
	}
}else{
	var geocoder = new GClientGeocoder();
	center = true;
}	
			map.setMapType(G_NORMAL_MAP);
			var customUI = map.getDefaultUI();
			customUI.maptypes.satellite = false;
			customUI.maptypes.hybrid = false;
			customUI.maptypes.physical = false;
			map.setUI(customUI);
			if(center){
				geocoder.getLatLng('Kansas City, Kansas', 
				function(point) {
					map.setCenter(point, 4);
       			});
       		}
}

function makeWindow(geocoder,address,map,zoom,clat,clon){
	
	var addr = parseJSONWindowAddress(address);
	
	if(address.address != ''){
		var point_addr = address.address+' '+address.address2+' '+address.city+', '+address.state+' '+address.zipcode;
	}else{
		var point_addr = address.latitude+','+address.longitude;
	}
	/* using lat/long values instaed of geocoder
	geocoder.getLatLng(
    point_addr,
    function(point) {
      if (!point) {
        //do nothing
      } else {
       	map.setCenter(point, zoom);
        var marker = new GMarker(point);
        map.addOverlay(marker);
        //marker.openInfoWindowHtml(address);
			GEvent.addListener(marker, "click", function() {
            marker.openInfoWindowHtml('<p class="gwindow">'+addr+'</p>');
          });
      }
    }
  );
  */
  	var point = new GLatLng(address.latitude,address.longitude);
  	var center_point = new GLatLng(clat,clon);
  	map.setCenter(center_point, zoom);
	var marker = new GMarker(point);
	map.addOverlay(marker);
	GEvent.addListener(marker, "click", function() {
	marker.openInfoWindowHtml('<p class="gwindow">'+addr+'</p>');
	});
}

function parseWindowAddress(str){
	str = str.substr(1,str.length-2);
	str = str.replace(/  /,'<br />');
	
	return str;
}

function parseJSONWindowAddress(json){
	var address = '';

	if(json.title != ''){ address += '<strong>'+json.title+'</strong><br />';}
	if(json.address != ''){ address += json.address+' '+json.address2+'<br />';}
	if(json.city != ''){ address += json.city;}
	if(json.state != ''){ address += ', '+json.state;}
	if(json.zipcode != ''){ address += ' '+json.zipcode;}
	
	var hr_addr = json.title+' '+json.address+' '+json.address2+' '+json.city+' '+json.state+' '+json.zipcode;

	address += '<br />';
	if(json.short_description != ''){ address += json.short_description.substr(0,50)+'...<br />';}
	address += '<img src="im/base/stars'+json.rating+'.gif" alt="rating" /><br /><a href="makeout-spot/?id='+json.id+'">View Details</a><br />';
	//add directions
	address += '<a href="'+getDirections(hr_addr,json.latitude,json.longitude)+'" target="_blank">Get Directions</a>';
	return address;
}

function getDirections(addr,lat,lng){
	var addr = escape(addr);
	var str = 'http://maps.google.com/maps?f=d&source=s_d&daddr='+addr+'&hl=en&geocode=%3BCcG_8XxRxhASFfLbXQIdN6a8-SkPdr9x4IBrhzFQf6t9fVh01g&mra=ls&sll='+lat+','+lng+'&ie=UTF8&t=h&z=19';
	return str;
}

function setLatLong(address,row_id){
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(address,function(point){
		var ord = parseLatLong(point.toString());
		doSetLatLong(ord,row_id);
	});
}

function doSetLatLong(coords,row_id){
	var pars = 'lat='+coords[0]+'&long='+coords[1]+'&row_id='+row_id;
	
	$.ajax({
	type: "POST",
	url: "ajax.set-lat-long.php",
	data: pars
	});
}

//used for storing the lat/long of a search
function getLatLong(address,tgt){
	var geocoder = new GClientGeocoder();
	geocoder.getLatLng(address,function(point){
		var ord = parseLatLong(point.toString());
		$("#"+tgt).text(ord[0]+','+ord[1]);
	});
	
}

function parseLatLong(str){
	var str1 = str.substr(1,str.length-2);
	return str1.split(',');
}

function getLocations(){
	var addr = $("#search_map_term").val();
	var address = new Array(addr);
	loadMap(address);
	return false;
}


//function for logging in
function signupUser(){
	var username = $("#signup_user").val();
	var email = $("#signup_email").val();
	var password = $("#signup_pwd").val();
	
	var pars = 'un='+username+'&pw='+password+'&em='+email;
	
	$.ajax({
	type: "POST",
	url: "ajax.user-signup.php",
	data: pars,
	success: function(msg){
		$("#signup_response").text(msg);
		$("#signup_response").show();
	}
	});
}

function loginUser(){
	var username = $("#login_user").val();
	var password = $("#login_pwd").val();
	
	var pars = 'un='+username+'&pw='+password;
	
	$.ajax({
	type: "POST",
	url: "ajax.user-login.php",
	data: pars,
	success: function(msg){
		$("#login_response").text(msg);
		$("#login_response").show();
		updateHeaderLogin();
	}
	});
}

function logoutUser(){
	
	var pars = 'logout=true';
	
	$.ajax({
	type: "POST",
	url: "user-logout.php",
	data: pars,
	success: function(msg){
		updateHeaderLogin();
	}
	});
}

function logoutFBUser(fburl){
	var pars = 'logout=true';
	
	$.ajax({
	type: "POST",
	url: "user-logout.php",
	data: pars,
	success: function(msg){
		updateHeaderLogin();
		window.location = fburl;
	}
	});
}

function showLogin(){
	$("#response_message_wrapper").show();
	$("#login_modal").show();
}

function showSignup(){
	$("#response_message_wrapper").show();
	$("#signup_modal").show();
}

function closeLogin(){
	$("#response_message_wrapper").hide();
	$("#login_modal").hide();
	$("#signup_modal").hide();
}

function updateHeaderLogin(){
	var pars = 'update=true';
	
	$.ajax({
	type: "POST",
	url: "ajax.header-login.php",
	data: pars,
	success: function(msg){
		$("#login_status").html(msg);
	}
	});
}

//star ratings

timer = null;

function hidepreview(uid,table){
	timer = setTimeout("showrate("+uid+",'"+table+"')",100);
}

function previewrate(rating,uid,table){
	if(timer) clearTimeout(timer);
	
	for(var i=1; i<=5; i++){
		var elem = $('#'+uid+'_star'+i);
		if(rating >= i){
			$('#'+uid+'_star'+i).attr('src','im/base/stars_full.gif');
		}else{
			$('#'+uid+'_star'+i).attr('src','im/base/stars_empty.gif');
		}
		
	}

}


function showrate(uid,table){

		var pars = 'id='+uid+'&section='+table;
		
		$.ajax({
		type: "POST",
		url: "ajax.show-rating.php",
		data: pars,
		success: function(msg){

			for(var i=1; i<=5; i++){
				if(msg >= i){
					$("#"+uid+"_star"+i).attr('src','im/base/stars_full.gif');
				}else if(msg == i - 0.5){
					$("#"+uid+"_star"+i).attr('src','im/base/stars_half.gif');
				}else{
					$("#"+uid+"_star"+i).attr('src','im/base/stars_empty.gif');
				}

			}
		}
		});
		
}

function postrate(rating,uid,table){

	var url = 'ajax.rating.php';
	var pars = 'id='+uid+'&rating='+rating+'&section='+table;
	
	$.ajax({
		type: "POST",
		url: "ajax.rating.php",
		data: pars,
		success: function(msg){
			if(msg == 'error'){
				alert('You must be logged in to rate items.');
				return;
			}
			
			for(var i=1; i<=5; i++){
				if(msg >= i){
					$("#"+uid+"_star"+i).attr('src','im/base/stars_full.gif');
				}else if(msg == i - 0.5){
					$("#"+uid+"_star"+i).attr('src','im/base/stars_half.gif');
				}else{
					$("#"+uid+"_star"+i).attr('src','im/base/stars_empty.gif');
				}

			}
		}
	});
}


// Video players
function makeVideoPlayer(player,clip_id){
//determine which player to use
if(player == 'youtube'){ 
	//youtube
	var youtube = '<object width="500" height="360">';
	youtube += '<param name="movie" value="http://www.youtube.com/v/'+clip_id+'&hl=en_US&fs=1&"></param>';
	youtube += '<param name="allowFullScreen" value="true"></param>';
	youtube += '<param name="allowscriptaccess" value="always"></param>';
	youtube += '<embed src="http://www.youtube.com/v/'+clip_id+'&hl=en_US&fs=1&" type="application/x-shockwave-flash" allowscriptaccess="always" allowfullscreen="true" width="500" height="360"></embed>';
	youtube += '</object>';
	
	$("#video_modal").html(youtube);
	jQuery.facebox({ div: '#video_modal' });
	

}else if(player == 'vimeo'){ 
	//vimeo
	var vimeo = '<object width="500" height="360">';
	vimeo += '<param name="allowfullscreen" value="true" />';
	vimeo += '<param name="allowscriptaccess" value="always" />';
	vimeo += '<param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id='+clip_id+'&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=FF0000&amp;fullscreen=1" />';
	vimeo += '<embed src="http://vimeo.com/moogaloop.swf?clip_id='+clip_id+'&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=FF0000&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="500" height="360"></embed>';
	vimeo += '</object>';
	
	$("#video_modal").html(vimeo);
	jQuery.facebox({ div: '#video_modal' });
	
}

}


//User comments
function makeCommentForm(map_location_id){
	$("#comment_modal").html('<iframe src="iframe.comment.php?id='+map_location_id+'" frameborder="0" width="680" height="400"></iframe>');
	jQuery.facebox({ div: '#comment_modal' });
}

//thumbnails
function showMapImage(src){
	jQuery.facebox('<img src="'+src+'" />');
}

//inits
$(document).ready(function(){
		formEvents();
});


//function for social slider
$(document).ready(function() {   
  	
  	var scrollpos = $(window).height() + $(window).scrollTop() - 300;	
		$('#social').css({ top: scrollpos });
  
  	 $(window).scroll(function(){
				
				var scrollpos = $(window).height() + $(window).scrollTop() - 300;
				$('#social').animate({top: scrollpos +"px" },{queue: false, duration: 600});	
					
		 });
});  

