
function disableLink(id) {
	//$(id).innerHTML = "Loading...";
	$(id).href = "javascript:;";
	$(id).onclick = "return false";
	$(id).style.cursor = "wait";
}


function removeAlbumImage(albumId, imageId, elem) {
	var fragment = "remote.php?mode=remove_album_image" + 
	"&album_id=" + albumId +
	"&image_id=" + imageId +
	"&date=" + Date();
	loadFragment(fragment);
	if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "Video deleted";
	return false;	
	
}

/**
 * Get thumbnails
 */

function getVideoThumbnail(videoId, elementId) {
	var fragment = "remote.php?mode=get_video_thumbnail" + 
	"&video_id=" + videoId +
	"&date=" + Date();
	loadFragmentInToElement(fragment, elementId);
	return false;
}

function getImageThumbnail(imageId, elementId) {
	var fragment = "remote.php?mode=get_image_thumbnail" + 
	"&image_id=" + imageId +
	"&date=" + Date();
	loadFragmentInToElement(fragment, elementId);
	return false;

}

/**
 * Videos
 */

function deleteVideo(videoId, elem) {
	var fragment = "remote.php?mode=delete_video" + 
	"&video_id=" + videoId +
	"&date=" + Date();
	loadFragment(fragment);
	if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "Video deleted";
	return false;
}

/**
 * Blogs
 */

	function publishBlog(blogId, elem) {
		var fragment = "remote.php?mode=publish_blog" + 
		"&blog_id=" + blogId +
		"&date=" + Date();
		loadFragment(fragment);
		if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "Blog published";
		return false;
	}
	
	function deleteBlog(blogId, elem) {
		var fragment = "remote.php?mode=delete_blog" + 
		"&blog_id=" + blogId +
		"&date=" + Date();
		loadFragment(fragment);
		if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "Blog entry deleted";
		return false;
	}

	/**
	 * Member picker
	 */
	
	
	function selectAllMembers() {
		var elems = $$(".verysmallscrolldiv .member");
		for(i=0; i<elems.length;i++) {
			if(elems[i].className == "member") {
				elems[i].className = "member chosen";
			}		
		}
	}		

	function selectMember(memberId) {
		var elem = $("member_" + memberId);
		var link = $("member_" + memberId + " a");
		
		if(elem.className == "member") {
			elem.className = "member chosen";
		} else {
			elem.className = "member";
		}
	}

	function prepareSendMessages() {

		var elems = $$("div.chosen");
		var memberIds = "";
		var id = "";
		for(i=0;i<elems.length;i++) {
			id = elems[i].id;
			memberIds = memberIds + id.substring(7,id.length) + "|";
		}		
		memberIds = memberIds.substring(0,memberIds.length-1);
		$("member_ids").value = memberIds;
	}
	
	function addToAlbum(albumId) {

		var elems = $$("div.chosen");
		var imageIds = "";
		var id = "";
		for(i=0;i<elems.length;i++) {
			id = elems[i].id;
			imageIds = imageIds + id.substring(6,id.length) + "|";
		}		
		imageIds = imageIds.substring(0,imageIds.length-1);

		var fragment = "remote.php?mode=add_to_album" + 
		"&album_id=" + albumId +
		"&images=" + imageIds +
		"&date=" + Date();
		loadFragment(fragment, onImagesAdded);
	}

	function deleteImage(imageId, elem) {
		var fragment = "remote.php?mode=delete_image" + 
		"&image_id=" + imageId +
		"&date=" + Date();
		loadFragment(fragment);
		if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "Image deleted";		
		return false;		
	}
	
	function onImagesAdded(np) {
		// TODO:No error checking
		//reLoad('coolbox_albumimgpicker','nav=' + $("nav").value + '&album_id=' + $("album_id").value);
		getUserImages();
	}

	function getUserImages() {
		var fragment = "remote.php?mode=get_user_images" + 
		"&member_id=" + $("member_id").value +
		"&album_id=" + $("album_id").value +
		"&date=" + Date();
		loadFragmentInToElement(fragment, "album_images");
	}
	
	function deleteAlbum(albumId) {
		if(confirm("Are you sure you want to delete this album?")) {
			var fragment = "remote.php?mode=delete_album" + 
			"&album_id=" + albumId +
			"&date=" + Date();
			loadFragment(fragment);
			if($("album_" + albumId)) $("album_" + albumId).innerHTML = "<p>Album deleted</p>";
		}
		return false;
	}
/**
 * Framework
 */
function validateRequest(fromRemoteCall) {
	if(fromRemoteCall.clean() != "") {
		alert("#" + fromRemoteCall + "#");
	}
}

function requireLogin() {
	if($("logged_in_member_id")) {
		return $("logged_in_member_id").value;
	} else {
		openLogin();
		return false;
	}
}

function isLoggedIn() {
	if($("logged_in_member_id")) {
		return $("logged_in_member_id").value;
	} else {
		return false;
	}
}
/*
var timerId;

function startTimer(execFunction) {
	clearTimeout(timerId);
	timerId = setTimeout(execFunction,1000); 
}
*/

/**
 * Forms
 */

var timerDisplayNameCheck;
function checkDisplayName() {
	var elem = $("txtdisplayname");
	if(!elem) return false;

	var fragment = "remote.php?mode=check_display_name" + 
	"&display_name=" + URLEncode(elem.value) +
	"&date=" + Date();
	loadFragment(fragment, onDisplayNameChecked);	
	return false;
}

function onDisplayNameChecked(np) {
	$("display_name_check_holder").innerHTML = np;
}

function clearDate(elemName) {
	$(elemName).value = "";
	if($(elemName + "_time")) $(elemName + "_time").value = "";
	return false;
}

/**
 * Status
 */

function setStatus() {
	if($("txtstatus").value=="What are you doing now?") return false;
	var fragment = "remote.php?mode=set_status" + 
	"&status=" + URLEncode($("txtstatus").value) +
	"&date=" + Date();
	loadFragment(fragment, onStatusSet);	
	return false;
}

function onStatusSet() {
	$("current_status").innerHTML = "..." + $("txtstatus").value;
	$("txtstatus").value = "What are you doing now?";
}

/**
 * Membership
 */

function joinGroup(groupId, elem) {
	if( ! requireLogin()) return false;
	
	var fragment = "remote.php?mode=join_group" + 
	"&group_id=" + groupId +
	"&date=" + Date();
	loadFragment(fragment);	

	if(elem.parentNode.className == "buttonholder") elem.parentNode.innerHTML = "You have joined this tribe";
	return false;
}

function applyGroup(groupId, elem) {
	if( ! requireLogin()) return false;
	
	var fragment = "remote.php?mode=join_group" + 
	"&group_id=" + groupId +
	"&date=" + Date();
	loadFragment(fragment);	

	if(elem.parentNode.className == "buttonholder") elem.parentNode.innerHTML = "Pending approval";
	return false;
}

function leaveGroup(groupId, elem) {
	if( ! requireLogin()) return false;
	
	var fragment = "remote.php?mode=leave_group" + 
	"&group_id=" + groupId +
	"&date=" + Date();
	loadFragment(fragment);	
	
	if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "You have left this tribe";
	return false;
}



/**
 * Friendship
 */

function pokeYourSelf(elem) {
	if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "**tickles**";
	return false;
}

function beYourOwnFriend(elem) {
	if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "**luving it**";
	return false;
}

function requestFriendship(toMemberId, fromMemberId, elem) {
	if( ! requireLogin()) return false;
	
	var fragment = "remote.php?mode=request_friendship" + 
	"&to_member_id=" + toMemberId +
	"&from_member_id=" + fromMemberId +
	"&date=" + Date();
	loadFragment(fragment);	

	if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "Friendship request sent";
	return false;
}

function removeFriendship(toMemberId, fromMemberId, elem) {
	if( ! requireLogin()) return false;
	
	var fragment = "remote.php?mode=remove_friendship" + 
	"&to_member_id=" + toMemberId +
	"&from_member_id=" + fromMemberId +
	"&date=" + Date();
	loadFragment(fragment);	
	
	if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "Friendship is shattered!";
	return false;
}

 

/**
 * Notifications
 */

function writeMessage(toId) {
	requireLogin();
	openWriteMessage(toId);
	return false;
}

function discardNotifications() {
	requireLogin();
	var fragment = "remote.php?mode=notifications_discard" + 
	"&date=" + Date();
	loadFragment(fragment, getNotifications);	
}

function discardNotification(notificationId) {
	requireLogin();
	var fragment = "remote.php?mode=notification_discard" + 
	 "&notification_id=" + notificationId +
	 "&date=" + Date();
	loadFragment(fragment, getNotifications);	
}

function acceptFriendship(memberId, notificationId) {
	requireLogin();	
	var fragment = "remote.php?mode=accept_friendship" + 
	"&member_id=" + memberId +
	"&notification_id=" + notificationId +
	"&date=" + Date();
	loadFragment(fragment, getNotifications);	
}

function acceptMembership(groupId, notificationId) {
	requireLogin();
	var fragment = "remote.php?mode=accept_membership" + 
	"&notification_id=" + notificationId +
	"&group_id=" + groupId +
	"&date=" + Date();
	loadFragment(fragment, getNotifications);	
}

function approveApplication(groupId, notificationId) {
	requireLogin();
	var fragment = "remote.php?mode=approve_application" + 
	"&notification_id=" + notificationId +
	"&group_id=" + groupId +
	"&date=" + Date();
	loadFragment(fragment, getNotifications);	
}


function getNotifications() {
	requireLogin();	
	var fragment = "remote.php?mode=notification_get" +
		"&date=" + Date();					
	loadFragmentInToElement(fragment, "notifications_holder");
}


/**
 * Comments / report
 */

function voteComment(id, direction) {
	if( ! requireLogin()) return;
	var fragment = "remote.php?mode=comment_vote" + 
	 "&direction=" + direction +
	 "&id=" + id +
	 "&date=" + Date();
	loadFragment(fragment, getComments);				 
}


function postComment() {
	requireLogin();
		
	if($('txtcomment').value == "Write your own comment") return false;

	if($('txtcomment').value.length > 2000) {
		alert("Comments can have maximum of 2000 characters. Your comment has " + $('txtcomment').value.length + " characters.");
		return false;
	}

	var targetRate = "";
	if(document.getElementById("target_rate")) targetRate = $("target_rate").value
	
	var fragment = "remote.php?mode=comment_post" + 
	 "&table_name=" + $('table_name').value +
	 "&id=" + $("id").value +
	 "&target_rate=" + targetRate +
	 "&content=" + URLEncode($('txtcomment').value) +
	 "&date=" + Date();
	loadFragment(fragment, getComments);	
	$('txtcomment').value = "Write your own comment";
}

function getComments() {

	var fragment = "remote.php?mode=comment_get" +
		"&table_name=" + $("table_name").value +
		"&id=" + $("id").value +
		"&date=" + Date();					
	loadFragmentInToElement(fragment, "comments_holder"  , onCommentsLoaded);
}

function onCommentsLoaded() {
	var accordion = new Accordion('a.miniplusminus', 'p.badcomment', {
	opacity: true,
	alwaysHide: true,
	display: 100,
	onActive: function(toggler, element){
		toggler.innerHTML = "-";
	},
	onBackground: function(toggler, element){
		toggler.innerHTML = "+";
	}
	}, $('col_left'));

}

function reportSpam(elem) {
	requireLogin();
	var fragment = "remote.php?mode=report_spam" + 
	 "&table_name=" + $('table_name').value +
	 "&object_id=" + $("id").value +
	 "&date=" + Date();
	loadFragment(fragment);	
	if(elem.parentNode.className == "holder") elem.parentNode.innerHTML = "Reported!";
	return false;
}


function allowContent(tableName, objectId, notificationId) {
	requireLogin();	
	var fragment = "remote.php?mode=allow_content" + 
	"&notification_id=" + notificationId +
	"&object_id=" + objectId +
	"&table_name=" + tableName +
	"&date=" + Date();
	loadFragment(fragment, getNotifications);	
}

function removeContent(tableName, objectId, notificationId) {
	requireLogin();
	var fragment = "remote.php?mode=remove_content" + 
	"&notification_id=" + notificationId +
	"&object_id=" + objectId +
	"&table_name=" + tableName +
	"&date=" + Date();
	loadFragment(fragment, validateRequest);	
}
