var btdtID = -1;
var btdtRating = -1;
var currentNotificationTimeout = null;
var tagBox = false;

function showNotification(text)
{
	document.getElementById('notificationText').innerHTML = text;
	var arrayPageScroll = getPageScroll();
	document.getElementById('notification').style.bottom = (20 - arrayPageScroll[1]) + 'px';
	$('#notification').fadeIn(200);
	clearTimeout(currentNotificationTimeout);
	currentNotificationTimeout = setTimeout("$('#notification').fadeOut(200);", 3000);
}

function activateBTDT(id)
{
	btdtID = id;
	
	document.getElementById('btdtRecensie').value = '';
	document.getElementById('btdtWhenMonth').selectedIndex = 0;
	document.getElementById('btdtWhenYear').selectedIndex = 0;
	
	document.getElementById('btdtStep0').style.display = 'block';
	document.getElementById('btdtStep1').style.display = 'none';
	document.getElementById('btdtStep2').style.display = 'none';
	document.getElementById('btdtStep3').style.display = 'none';
	document.getElementById('btdtStep4').style.display = 'none';
	document.getElementById('beenThereDoneThat').style.display = 'block';
	document.getElementById('shadeBox').style.display = 'block';
	
	var arrayPageSize = getPageSize();
	document.getElementById('shadeBox').style.height = arrayPageSize[1] + 'px';

	var arrayPageScroll = getPageScroll();
	var btdtTop = arrayPageScroll[1] + (arrayPageSize[3] / 2) - 125;
	document.getElementById('beenThereDoneThat').style.top = btdtTop + 'px';
	
	if (!tagBox) {
		// load friends and create tag box
		$.ajax({
			url:		'/ajax_exec/friendsList.php',
			dataType:	'json',
			success:	function(response) {
				// create it and load some data for facebook
				tagBox = $('#tagBox').fcbkcomplete({
					data:				response,
					filter_hide:		true,
					filter_selected:	true,
					firstselected:		true,
					newel:				true,
					complete_text:		'Type the name of your friends, or their email addresses'
				});
				
				$('#tagBoxPlaceHolder').hide();
				$('#tagBoxHolder').show();
			}
		});
	} else {
		// clear tag box
		$('#tagBox').empty();
		$('#tagBoxHolder > ul.holder > li.bit-box').remove();
		$('#tagBoxHolder > ul.holder > li.bit-input > input').val('');
	}
}

function closeBTDT()
{
	document.getElementById('beenThereDoneThat').style.display = 'none';
	document.getElementById('shadeBox').style.display = 'none';
}

function step1BTDT()
{
	document.getElementById('btdtStep0').style.display = 'none';
	document.getElementById('btdtStep1').style.display = 'block';
}

function step2BTDT(rating)
{
	btdtRating = rating;
	var ratingElement = document.getElementById('selectedRatingImage');
	switch (rating)
	{
		case 3:
			ratingElement.innerHTML = "<img src=\"/templates/front/default/images/thumbGood.png\" height=\"35\"> <span>Love it</span>";
			break;
		case 2:
			ratingElement.innerHTML = "<img src=\"/templates/front/default/images/thumbAvg.png\" height=\"35\"> <span>Not bad</span>";
			break;
		case 1:
			ratingElement.innerHTML = "<img src=\"/templates/front/default/images/thumbBad.png\" height=\"35\"> <span>Not again</span>";
			break;
	}

	document.getElementById('btdtStep1').style.display = 'none';
	document.getElementById('btdtStep2').style.display = 'block';
	$('#btdtRecensie').elastic();
}

function submitBTDT()
{
	document.getElementById('btdtStep2').style.display = 'none';
	document.getElementById('btdtStep3').style.display = 'block';

	var url = '/ajax_exec/setFavProp.php?';
	url += '&guide_id=' + btdtID;
	url += '&rating=' + btdtRating;
	var msg = document.getElementById('btdtRecensie').value;
	url += '&add_to_map=true';
	url += '&when_month=' + $('#btdtWhenMonth').val();
	url += '&when_year=' + $('#btdtWhenYear').val();
	url += '&tags=';
	
	var tags = [];
	$('#tagBox > option').each(function() {
		tags.push($(this).val());
	});
	url += tags.join(',');
	
	$.ajax({
        url: url,
        type: "POST",
        data: { message: msg },
        success: function(response) { 
			response = eval('(' + response + ')');
			var el = document.getElementById('btdtEndText');
			if (response.status == 'ok')
			{
				el.innerHTML = '<span>Done! Click to close</span>';
				
				// status image
				setStatusImage(btdtID, "/templates/front/default/images/marker_fav.png", "You were here");
			
				// set what buttons to show
				setMarkerButtons(btdtID, false, false, true, true, true);
				
				// change marker
				setMapMarker(btdtID, true, false);
				
				// show notification
				closeBTDT();
				showNotification("Your review has been added.<br><br>Thanks for contributing!");
				
				// put it on the page
				createReviewBox(btdtID, response.id, false, response.posted, btdtRating, $('#btdtWhenMonth').val(), $('#btdtWhenYear').val(), msg.replace(/\n/g, '<br />'), response.tags);
				
				// get some tag data
				var $allInvites = $('#tagBox > option');
				var $fbInvites = $('#tagBox > option[value^=fb]');
				
				if ($fbInvites.length > 0) {
					// todo; only do this if publish to facebook was selected?
					$.ajax({
						url: '/ajax_exec/getItemInfoForFB.php?id=' + btdtID,
						dataType: 'json',
						success: function(response) {
							var message = "I added '" + response.name + "' to my map on Sparkx, and have tagged ";
							
							for (var i = 0; i < $fbInvites.length; ++i) {
								message += "@" + trim($fbInvites[i].innerHTML);
								if (i < $fbInvites.length - 2) {
									message += ", ";
								} else if (i == $fbInvites.length -2) {
									message += " and ";
								}
							}
							
							if ($fbInvites.length != $allInvites.length) {
								var diff = $allInvites.length - $fbInvites.length;
								message += ", and " + diff + " other" + (diff > 1 ? "s" : "");
							}
							
							message += ".\n\n" + msg;
							var attachment = {
					            'name': response.name,
					            'href': 'http://www.sparkx.com/guide/' + response.id + '-' + response.safename
							};
							
							var action_links = [{
								text:	'View my Sparkx map',
								href:	'http://www.sparkx.com/sparkx/' + userData.username_safe
							}];
							
							FB.Connect.streamPublish(message, attachment, action_links);
						}
					});
				} else {
					// post to wall if requested
					if (document.getElementById('publish_to_facebook').checked)
					{
						facebook_publish_feed_story(btdtID, msg, function() { });
					}
				}
			}
			else if (response.status == 'error')
			{
				el.innerHTML = '<span>Sorry, something went wrong... :(</span>';
			}
			else if (response.status == 'error1')
			{
				el.innerHTML = '<span>Saved to your map, but we lost the review there somewhere...</span>';
			}
			else if (response.status == 'not_logged_in')
			{
				el.innerHTML = '<span>You\'re not logged in. Please log in and try again.</span>';
			}
			else
			{
				el.innerHTML = '<span>Unexpected: ' + ajax.response + '</span>';
			}
			
			document.getElementById('btdtStep3').style.display = 'none';
			//document.getElementById('btdtStep4').style.display = 'block';
		}
	});
}

function closeATWL() {
	document.getElementById('addToWishListBox').style.display = 'none';
	document.getElementById('shadeBox').style.display = 'none';
}

function addToWishList(id)
{
	// save the id
	btdtID = id;
	
	// show the boxes
	document.getElementById('addToWishListBox').style.display = 'block';
	document.getElementById('shadeBox').style.display = 'block';
	
	var arrayPageSize = getPageSize();
	document.getElementById('shadeBox').style.height = arrayPageSize[1] + 'px';

	var arrayPageScroll = getPageScroll();
	var btdtTop = arrayPageScroll[1] + (arrayPageSize[3] / 2) - 125;
	document.getElementById('addToWishListBox').style.top = btdtTop + 'px';
	$('#wlText').val('').focus();
}

function sendAddToWishList()
{
	closeATWL();
	var url = '/ajax_exec/addToWishList.php?guide_id=' + btdtID;
	var msg = $('#wlText').val();
	
	$.ajax({
        url: url,
        type: "POST",
        data: { message: msg },
        success: function(response) {
			response = eval('(' + response + ')');
			var el = document.getElementById('btdtEndText');
			if (response.status == 'ok') {
				// set what buttons to show
				setMarkerButtons(btdtID, true, false, false, true, true);
				
				// status image
				setStatusImage(btdtID, "/templates/front/default/images/marker_wish.png", "On your wishlist");
				
				// change marker image
				setMapMarker(btdtID, false, true);
				
				// notify the user
				showNotification("Ok, saved it to your wishlist. It can now be found on your map!");

				// put it on the page
				createReviewBox(btdtID, response.id, true, response.posted, btdtRating, -1, -1, msg.replace(/\n/g, '<br />'), false);
			} else if (response.status == 'error') {
				el.innerHTML = '<span>Sorry, something went wrong... :(</span>';
			} else if (response.status == 'not_logged_in') {
				el.innerHTML = '<span>You\'re not logged in. Please log in and try again.</span>';
			} else {
				el.innerHTML = '<span>Unexpected: ' + response.status + '</span>';
			}

			if (response.status != 'ok') {
				document.getElementById('btdtStep1').style.display = 'none';
				document.getElementById('btdtStep2').style.display = 'none';
				document.getElementById('btdtStep3').style.display = 'block';
				document.getElementById('btdtStep4').style.display = 'none';
				document.getElementById('beenThereDoneThat').style.display = 'block';
				document.getElementById('shadeBox').style.display = 'block';
			}
			
			document.getElementById('btdtStep3').style.display = 'none';
			document.getElementById('btdtStep4').style.display = 'block';
		}
	});
}

var atfID;
function activateAddToFolder(id)
{
	// save the id for later
	atfID = id;
	
	// show the boxes
	document.getElementById('addToFolderBox').style.display = 'block';
	document.getElementById('shadeBox').style.display = 'block';
	
	var arrayPageSize = getPageSize();
	document.getElementById('shadeBox').style.height = arrayPageSize[1] + 'px';

	var arrayPageScroll = getPageScroll();
	var btdtTop = arrayPageScroll[1] + (arrayPageSize[3] / 2) - 125;
	document.getElementById('addToFolderBox').style.top = btdtTop + 'px';
}

function closeATF(){
	document.getElementById('newFolderName').value = '';
	document.getElementById('folderMonth').selectedIndex = 0;
	document.getElementById('folderYear').selectedIndex = 0;
	document.getElementById('addToFolderBox').style.display = 'none';
	document.getElementById('shadeBox').style.display = 'none';
}

function addToNewFolder()
{
	var url = '/ajax_exec/addToFolder.php?guide_id=' + atfID;
	url += '&folder_name=' + document.getElementById('newFolderName').value.replace(/&/g, '%26').replace(/=/g, '%3D').replace(/ /g, '%20');
	url += '&folder_month=' + document.getElementById('folderMonth').options[document.getElementById('folderMonth').selectedIndex].value;
	url += '&folder_year=' + document.getElementById('folderYear').options[document.getElementById('folderYear').selectedIndex].value;

	$.ajax({
        url: url,
        success: function(response) {
			if (response.match('^ok'))
			{
				var parts = response.split('^,-,^');
				var id = parts[1];
				var name = parts[2];
				
				// add it to the box thingy
				var div = document.createElement("div");
				div.className = "folderButton";
				var a = document.createElement("a");
				a.href = "javascript:void(0);";
				a.onclick = function() {
					addToFolder(id);
				};
				a.innerHTML = name;
				div.appendChild(a);
				
				var element = document.getElementById('folderLinks');
				element.appendChild(div);
					
				// close add to folder box
				closeATF();
				
				var textElement = document.getElementById('foldersList');
				if (textElement) {
					if (textElement.innerHTML && textElement.innerHTML.length > 0) 
						textElement.innerHTML += ", ";
					textElement.innerHTML += name;
					textElement.parentNode.style.display = 'block';
				}
				
	            _folders[id] = new Object();
				_folders[id].name = name;
				_folders[id].when_month = document.getElementById('folderMonth').options[document.getElementById('folderMonth').selectedIndex].value;
				_folders[id].when_year = document.getElementById('folderYear').options[document.getElementById('folderYear').selectedIndex].value;
				createFolderLinks();
				
				// let the user know everything was alright
				showNotification("New album '" + name + "' has been created with the spot saved inside it.");
			}
		}
	});
}

function addToFolder(id)
{
	var name = _folders[id].name;
	
	var url = '/ajax_exec/addToFolder.php?guide_id=' + atfID;
	url += '&folder_id=' + id;
	url += '&folder_name=' + name;
	
	$.ajax({
        url: url,
        success: function(response) {
			if (response.match('^ok')) {
				// close add to folder box
				closeATF();
				
				var textElement = document.getElementById('foldersList');
				if (textElement) {
					if (textElement.innerHTML && textElement.innerHTML.length > 0) 
						textElement.innerHTML += ", ";
					textElement.innerHTML += name;
					textElement.parentNode.style.display = 'block';
				}
				
				// let the user know everything was alright
				showNotification("Saved in the album '" + name + "'.");
			};
		}
	});
}

function editFolder(id)
{
	var name = _folders[id].name;
	var month = _folders[id].when_month;
	var year = _folders[id].when_year;
	
	// save id for later
	atfID = id;
	
	// set some values
	$('#editFolderName').val(name);
	$('#editFolderMonth option').each(function(index) {
		if (this.value == month) {
			$(this).parent().attr('selectedIndex', index);
			return false;
		}
	});
	$('#editFolderYear option').each(function(index) {
		if (this.value == year) {
			$(this).parent().attr('selectedIndex', index);
			return false;
		}
	});
	
	// show the boxes
	document.getElementById('editFolderBox').style.display = 'block';
	document.getElementById('shadeBox').style.display = 'block';
	
	var arrayPageSize = getPageSize();
	document.getElementById('shadeBox').style.height = arrayPageSize[1] + 'px';

	var arrayPageScroll = getPageScroll();
	var btdtTop = arrayPageScroll[1] + (arrayPageSize[3] / 2) - 125;
	document.getElementById('editFolderBox').style.top = btdtTop + 'px';
}

function submitEditFolder() {
	// get the required values
	var name = $('#editFolderName').val();
	var month = $('#editFolderMonth').val();
	var year = $('#editFolderYear').val();
	
	// create the url
	var url = '/ajax_exec/editFolder.php?folder_id=' + atfID;
	url += '&new_name=' + name.replace(/&/g, '%26').replace(/=/g, '%3D').replace(/ /g, '%20');
	url += '&new_month=' + month;
	url += '&new_year=' + year;
	
	// ajax request
	$.ajax({
        url: url,
        success: function(response) {
			if (response.match('^ok')) {
				var parts = response.split('^,-,^');
				var oldname = parts[1];
					
				closeEditFolder();
				
				if (name != oldname) {
					showNotification("The album " + oldname + " has been renamed to " + name + ".");
				} else {
					showNotification("Your changes to the album " + name + " have been saved.");
				}
				
				_folders[atfID].name = name;
				_folders[atfID].when_month = month;
				_folders[atfID].when_year = year;
				createFolderLinks();
			}
		}
	});
}

function closeEditFolder(){
	document.getElementById('editFolderName').value = '';
	document.getElementById('editFolderMonth').selectedIndex = 0;
	document.getElementById('editFolderYear').selectedIndex = 0;
	document.getElementById('editFolderBox').style.display = 'none';
	document.getElementById('shadeBox').style.display = 'none';
}

function deleteFolder(id, elementToDelete)
{
	var name = _folders[id].name;
	
	if (window.confirm('Are you sure you want to delete the album ' + name + '?'))
	{
		var url = "/ajax_exec/deleteFolder.php?folder_id=" + id;
		
		$.ajax({
	        url: url,
	        success: function(response) {
				if (response == 'ok') {
					// delete the element for that folder
					if (elementToDelete != null)
						elementToDelete.parentNode.removeChild(elementToDelete);
					
					showNotification("The album " + name + " has been deleted.");
					
					delete _folders[id];
				    createFolderLinks();
				}
			}
		});
	}
}

function showTB(id) {
	btdtID = id;
	
	document.getElementById('addTagsBox').style.display = 'block';
	document.getElementById('shadeBox').style.display = 'block';
	
	var arrayPageSize = getPageSize();
	document.getElementById('shadeBox').style.height = arrayPageSize[1] + 'px';

	var arrayPageScroll = getPageScroll();
	var btdtTop = arrayPageScroll[1] + (arrayPageSize[3] / 2) - 125;
	document.getElementById('addTagsBox').style.top = btdtTop + 'px';
	
	// load friends and create tag box
	$.ajax({
		url:		'/ajax_exec/friendsList.php?id=' + id,
		dataType:	'json',
		success:	function(response) {
			// create it and load some data for facebook
			var $tagBox2 = $('#tagBox2').fcbkcomplete({
				data:				response,
				filter_hide:		true,
				filter_selected:	true,
				firstselected:		true,
				newel:				true,
				complete_text:		'Type the name of your friends, or their email addresses'
			});
			
			$('#tagBoxPlaceHolder2').hide();
			$('#tagBoxHolder2').show();
			$('#tagBoxHolder2 input.maininput').focus();
		}
	});
}

function sendTags() {
    var url = '/ajax_exec/saveTags.php?guide_id=' + btdtID + '&tags=';

    var tags = [];
    $('#tagBox2 > option').each(function () {
        tags.push($(this).val());
    });
    url += tags.join(',');

    $.ajax({
        url: url,
        dataType: 'json',
        success: function (response) {
            if (response.status == 'ok') {
                // show notification
                showNotification("Your tags have been saved!");

                // show it with the review, if any
                // (might be 0 if user invited through email)
                if (response.tags.length > 0) {
                    // generate some textual representation
                    var tagText = new StringBuffer();
                    for (var i = 0; i < response.tags.length; ++i) {
                        tagText.append("<a href='/sparkx/").append(response.tags[i].username).append(
								"'><b>").append(response.tags[i].name).append("</b></a>");

                        if (i < response.tags.length - 1) {
                            tagText.append(" and ");
                        }
                    }

                    // if previous tags were there
                    $existingTags = $('#reviewTags' + btdtID);
                    if ($existingTags.length > 0) {
                        // add the text
                        $existingTags.append(' and ' + tagText.toString());

                        // update the count
                        $('#reviewTagHolder' + btdtID + ' > a > b').text(
								$('#reviewTags' + btdtID + ' > a').length + ' friends');
                    } else {
                        // nothing there yet, need to create it all now, eek!
                        var count = response.tags.length;
                        $tags = $('<span />').html(tagText.toString()).attr('id', 'reviewTags' + btdtID).css('display', count == 1 ? 'inline' : 'none');
                        $preview = $('<a>').attr('href', 'javascript:void(0)').append(
								$('<strong>').text(count + ' friend' + (count != 1 ? 's' : ''))
							).click(function () {
							    $(this).hide();
							    $('#reviewTags' + btdtID).css('display', 'inline');
							});
                        if (count == 1) {
                            $preview.hide();
                        }

                        $('#reviewTagHolder' + btdtID).append('was here with ').append($tags).append($preview).append(' and ');
                    }
                }
            }
            else if (response.status == 'error') {
                el.innerHTML = '<span>Sorry, something went wrong... :(</span>';
            }
            else if (response.status == 'not_logged_in') {
                el.innerHTML = '<span>You\'re not logged in. Please log in and try again.</span>';
            }
            else {
                el.innerHTML = '<span>Unexpected: ' + ajax.response + '</span>';
            }
        }
    });

    closeTB();
}

function closeTB() {
	document.getElementById('addTagsBox').style.display = 'none';
	document.getElementById('shadeBox').style.display = 'none';
	
	// clear the friend selector tag thingy, so it will have to load again next time
	// this way, the friends you can tag are always up to date with who you've already tagged
	// at a certain review
	$('#tagBox2').empty();
	$('#tagBoxHolder2 > *').remove(':not(#tagBox2)');
	$('#tagBoxHolder2').hide();
	$('#tagBoxPlaceHolder2').show();
}

function removeTag(id) {
	var url = "/ajax_exec/removeTag.php?guide_id=" + id;
	
	$.ajax({
        url: url,
        success: function(response) {
			if (response == 'ok') {
				$('#removeTag' + id).hide();
				showNotification("Ok, removed the tag.");
			}
		}
	});
}

function resetStatus(id) {
	if (window.confirm("Are you sure you want to remove this spot from your map? It will remove all your reviews for this spot, and all tags of you.")) {
		var url = "/ajax_exec/resetStatus.php?guide_id=" + id;
		
		$.ajax({
	        url: url,
	        success: function(response) {
	            response = eval('(' + response + ')');
				if (response.status == 'ok') {
				    // hide reviews
					if (typeof userData != "undefined")
						$('.reviewBy' + userData.user_id).hide();
				    
					// status image
					setStatusImage(id, "/templates/front/default/images/marker_plain.png", "You haven't been here");
					
					// set what buttons to show
					setMarkerButtons(id, true, true, false, false, false);
					
					// change marker image
					setMapMarker(id, false, false);
					
					// reset folder text
					var textElement = document.getElementById('foldersList');
					if (textElement) {
						textElement.innerHTML = "";
						textElement.parentNode.style.display = 'none';
					}
					
			        if (typeof thisID != "undefined") {
			            if (response.deleted.contains(thisID)) {
			                if (typeof thisRef != "undefined" && thisRef > 0) {
			                    // redirect to ref
			                    var newURL = sprintf(thisURL, thisRef);
			                    window.location.href = newURL;
			                }
			            }
			        }
					
					showNotification("Ok, removed it from your map.");
				}
			}
		});
	}
}

var reviewText = null;
function editReview(id) {
    btdtID = id;
    reviewText = trim($('#reviewText' + id).html());
    $('#reviewTextHolder' + id).hide();
    var width = $('#reviewEditButtons' + id).parent().width();
    $('#reviewEditButtons' + id).hide();
    
    $('#reviewEditing' + id).empty().append(
        $('<div>').css('width', '100%').append(
            $('<textarea>').css('width', width + 'px').attr('id', 'reviewEditBox' + id).text(reviewText.replace(/<br( \/)?>/g, '\r\n'))
        ).add($('<div>').css('float', 'right').css('clear', 'both').append(
            $('<a>').attr('href', 'javascript:void(0)').css('font-weight', 'bold').text('save').bind('click', function() {
                saveReview(id);
            }).add($('<a>').attr('href', 'javascript:void(0)').css('font-weight', 'bold').css('padding-left', '10px').text('cancel').bind('click', function() {
                setReviewText(id, reviewText);
            })
        ))
    )).show();
    
    $('#reviewEditBox' + id).focus().elastic();
}

function saveReview(id) {
    var newReviewText = trim($('#reviewEditBox' + id).val());
    if (newReviewText == reviewText) {
        setReviewText(id, reviewText);
        return;
    }
    
	var url = "/ajax_exec/editReview.php?review_id=" + id;
	
	$.ajax({
        url: url,
        type: "POST",
        data: { new_text: newReviewText },
        success: function(response) {
			response = eval('(' + response + ')');
			if (response.status == 'ok') {
			    var text = response.text;
	            
	            setReviewText(id, text);
			} else {
			    setReviewText(id, reviewText);
			}
		}
	});
}

function setReviewText(id, text) {
    $('#reviewText' + id).html(text);
    $('#reviewEditing' + id).hide().empty();
    
    if (text && text.length > 0) {
    	$('#reviewTextHolder' + id).show();
    	$('#reviewEditButtons' + id + ' > a:first-child').text('edit');
    } else {
    	$('#reviewEditButtons' + id + ' > a:first-child').text('add text');
    }
    $('#reviewEditButtons' + id).show();
}

function deleteReview(id) {
	if (window.confirm("Are you sure you want to delete this review (and the rating that goes with it)?")) {
		var url = "/ajax_exec/deleteReview.php?review_id=" + id;
		
		$.ajax({
	        url: url,
	        success: function(response) {
				if (response == 'ok') {
				    // hide review if found
				    $('#reviewTextHolder' + id).hide();
		            $('#reviewEditButtons' + id).hide();
				    
			        // hide entire box
			        $('#review' + id).hide();
			        
			        if (typeof thisID != "undefined") {
			            if (id == thisID) {
			                if (typeof thisRef != "undefined" && thisRef > 0) {
			                    // redirect to ref
			                    var newURL = sprintf(thisURL, thisRef);
			                    window.location.href = newURL;
			                } else {
			                    // it's gone, redirect to atlas
			                    window.location.href = "/guide";
			                }
			            }
			        }
					
					showNotification("Ok, review was deleted.");
				}
			}
		});
	}
}

function setStatusImage(id, url, title) {
	var imageID = "statusImage" + id;
	var imageElement = document.getElementById(imageID);
	if (imageElement) {
		imageElement.src = url;
		imageElement.alt = title;
		imageElement.title = title;
	}
}

function setMarkerButtons(id, fav, wish, rating, reset, atf) {
	var favButton = document.getElementById('addToMapButton' + id);
	var btdtButton = document.getElementById('btdtButton' + id);
	var ratingButton = document.getElementById('addRatingButton' + id);
	var resetButton = document.getElementById('resetButton' + id);
	var atfButton = document.getElementById('atfButton' + id);
	
	if (favButton)
		favButton.style.display = (fav ? '' : 'none');
	if (btdtButton)
	    btdtButton.style.display = (wish ? '' : 'none');
	if (ratingButton)
		ratingButton.style.display = (rating ? '' : 'none');
	if (resetButton)
		resetButton.style.display = (reset ? '' : 'none');
	if (atfButton)
		atfButton.style.display = (atf ? '' : 'none');
}

function setMapMarker(id, fav, wish) {
	if (isOnMap()) {
	    map.closeInfoWindow();

	    var guideItem = new Object();
	    guideItem.id = id;
	    guideItem.fv = fav;
	    guideItem.iw = wish;
	    guideItem.lt = markersByID[id].getLatLng().lat();
	    guideItem.lg = markersByID[id].getLatLng().lng();
	    var newMarker = createCoolMarker(guideItem);
		
	    map.removeOverlay(markersByID[id]);
	    map.addOverlay(newMarker);
	    markersByID[id] = newMarker;
	}
}

function isOnMap() {
	return ((typeof map != 'undefined') && (map.closeInfoWindow));
}

function createFolderLinks()
{
    // first in the ATF box
    var atfBox = $('#folderLinks');
    if (atfBox.length)
    {
    	atfBox = atfBox.get(0);
        var firstChild = atfBox.firstChild;
        atfBox.innerHTML = ""; // get rid of all contents
        atfBox.appendChild(firstChild);
        if (_folders.length == 0)
        {
            atfBox.style.display = 'none';
        }
        
        for (var i in _folders)
        {
//          <div class="folderButton">
//				<a href="javascript:void(0);" onclick="javascript:addToFolder({$guide_folders[i].id}, '{$guide_folders[i].name|addslashes}');">
//					{$guide_folders[i].name}
//				</a>
//			</div>
            var _el = document.createElement("div");
            _el.className = "folderButton";
            
            var _a = document.createElement("a");
            _a.href = "javascript:void(0);";
            _a.onclick = function () { addToFolder(i); };
            _a.innerHTML = _folders[i].name;
            
            _el.appendChild(_a);
            atfBox.appendChild(_el);
        }
    }
    
    // then the links next to the map
    var guideBox = $('#userFolders');
    if (guideBox.length)
    {
        guideBox = guideBox.get(0);
        guideBox.innerHTML = "";
        if (_folders.getLength() == 0) {
            guideBox.style.display = 'none';
        }

        var _ul = document.createElement('ul');
        _ul.style.zIndex = "900";
        
        for (var i in _folders)
        {
            if (+i) {
                //            <span class="folderItem" style="float: right; width: 44px;">
                //                <span onclick="javascript:deleteFolder({$guide_folders[0].id}, this.parentNode.parentNode);" class="deleteFolderLink" title="Delete">
                //                    &nbsp;
                //                </span>
                //                <span onclick="javascript:editFolder({$guide_folders[0].id});" class="editFolderLink" title="Edit">
                //                    &nbsp;
                //                </span>
                //            </span>
                //            
                //            <a href="javascript:void(0);" rel="{$guide_folders[0].id}"  {if $userid == $myuserid}style="padding-right: 50px;"{/if}>
                //                {$guide_folders[0].name}
                //            </a>

                var _s = document.createElement("span");
                _s.className = "folderItem";
                _s.style.cssFloat = "right";
                _s.style.styleFloat = "right";
                _s.style["float"] = "right";
                _s.style.width = "44px";

                var id = +i;

                var _a = document.createElement("span");
                _a.className = "deleteFolderLink";
                _s.appendChild(_a);
                _a.onclick = function() { deleteFolder(id, _a.parentNode.parentNode); };
                _a.title = "Delete";
                _a.innerHTML = "&nbsp;";

                var _a2 = document.createElement("span");
                _a2.className = "editFolderLink";
                _s.appendChild(_a2);
                _a2.onclick = function() { editFolder(id); };
                _a2.title = "Edit";
                _a2.innerHTML = "&nbsp;";

                var _a3 = document.createElement("a");
                _a3.href = "javascript:void(0);";
                _a3.rel = i;
                _a3.style.paddingRight = "50px";
                _a3.innerHTML = _folders[i].name;

                if (_folders.getLength() == 1) {
                    guideBox.appendChild(_s);
                    guideBox.appendChild(_a3);
                } else {
                    var _li = document.createElement("li");
                    _li.className = "folderItem";
                    _s.className = "";
                    _li.appendChild(_s);
                    _li.appendChild(_a3);

                    _ul.appendChild(_li);
                }
            }
        }

        if (_folders.getLength() > 1) {
            var _a = document.createElement("a");
            _a.id = "selectedFolderText";
            _a.href = "#";
            _a.innerHTML = "Albums (" + _folders.getLength() + ")";

            guideBox.appendChild(_a);
            guideBox.appendChild(_ul);
        }
    }

    $('#btdtFolder').empty();
    for (var i in _folders)
    {
	    // and finally in the btdt box
	    $('#btdtFolder').append(
    		$('<option />').val(i).html(_folders[i].name)
		);
    }
}

function createReviewBox(guide_id, reaction_id, wishpost, posted, rating, month, year, content, tags) {
	$('#visitsContainer').show();
	
	$div = $('<div />');
	
	$div.setTemplateURL("/templates_json/review.php");

	$div.processTemplate({
		'id': reaction_id,
		'user_id': userData.user_id,
		'posted': posted,
		'rating': rating,
		'month': month,
		'year': year,
		'content': content,
		'firstname': userData.firstname,
		'lastname': userData.lastname,
		'username': userData.username,
		'photo': userData.picture,
		'wish': wishpost,
		'tags': tags
	});
	$div.prependTo($('#visits' + guide_id));
	$('#visits' + guide_id + ' abbr.timeago').timeago();
}

