var communityPhotoInit = [];
var communityMemberInit = [];
var pgPhotoInit = [];
var pgMemberInit = [];
var albumPhotoInit = [];
var albumMemberInit = [];

var itemList = [];
var albumMemberIds = [];

var pgPhotoIds = [];
var pgMemberIds = [];
var pgShareIds = [];

var communityPhotoIds = [];
var communityMemberIds = [];
var communityShareIds = [];


var currentInboxPage = {
	received: 1,
	sent: 1,
	comment: 1
};

var isInboxPage = false;
var watermarkTargetPhotoId = 0;
var swfu = null;

var currentGroupPage = 1;

function deleteUserAccount() {
	var choice = false;

	choice = confirm('Are you sure you want to delete your account? All of your photos and profile will be deleted.');

	if (choice) {
		jQuery.post(
			'/actions/ajaxServ.php',
			{
				content: 'deleteUserAccount'
			},
			function(data) {
				window.location.href = '/';
			}
		);
	}

}


function setRecurOption() {
	var recur = jQuery("#recurBox")[0].checked;
	
	jQuery.post(
		'/actions/ajaxServ.php',
		{
			content: 'setRecurOption',
			recur: recur
		}
	);
}

function saveTagsBatch() {
	var divs = jQuery("#photosInner div.divIsDraggable");
	
	if (divs.length == 0) {
		alert('Please enter tags (comma separated).');
		return;
	}
	
	var idList = []
	
	for (var i=0; i < divs.length; i++) {
		var photoId = jQuery(divs[i]).attr('photoId');
		
		idList.push(parseInt(photoId));
	}

	var tags = jQuery("#tags").val();
	tags = encodeURIComponent(tags);

	jQuery.post(
		"/actions/photoTags.php",
		{
			photoList: idList.join(','),
			tags: tags
		},
		function(data) {
			var anything = document.getElementById('anything');

			anything.style.display = 'none';
			anything.style.visibility = 'hidden';

			setAnything('');

			anything.style.position = 'relative';
		}
	);

}

function reloadPrivacyGroupPage() {
	privacyGroupChangePage(currentGroupPage);
}

function privacyGroupChangePage(page) {
	jQuery.get(
		'/lib/user.php',
		{
			get: 'privacyGroupPage',
			page: page
		},
		function(data) {
			currentGroupPage = page;
			jQuery("#groupsInner").html(data);
		}
	);
}

function closeRotateOverlay(mediaId) {
	jQuery("#rotatePanel"+mediaId).dialog('close');
}

function initRotateOverlay() {
	jQuery("div.rotatePanelOverlay").dialog({
		modal: true,
		autoOpen: false,
		width: 240,
		height: 350,
		resizable: true,
		open: function(event) {
			var id = jQuery(event.target).attr('id').sub(/rotatePanel/, '');

			var canvasTag = jQuery("#canvas_"+id).remove();

			jQuery("#rotateCanvasDiv"+id).append(canvasTag);
			doCanvaseRotateImage(id, 0);
		},
		close: function(event) {
			var id = jQuery(event.target).attr('id').sub(/rotatePanel/, '');

			var canvasTag = jQuery("#canvas_"+id).remove();

			jQuery("#link_"+id).append(canvasTag);
		}
	}); 
}

function myPhotosInit() {
	jQuery("div.photoDetailOverlay").dialog({
		modal: true,
		autoOpen: false,
		width: 200,
		resizable: false
	});
	initRotateOverlay();
}

function reInitPhotos() {
	jQuery("#myphotos div.divIsDraggable").draggable(
		{
			helper: function(event, ui) {
				var clone = jQuery(event.target).clone();
				clone.css('z-index','12000');
				jQuery("body").append(clone);
				return clone;
			},
			connectToSortable: "#photosInner"
		}
	);
}

function reInitMembers() {
	initMembersDrag(1);
}

function closePhotoDetails(photoId) {
	var params = jQuery("#"+'photoDetails_form'+photoId).serializeArray();

	jQuery.post(
		"/lib/media.php?this="+sid,
		params,
		function(data) {
			jQuery("#photoDetails"+photoId).dialog('close');
		}
	);
}

function openPhotoDetails(photoId) {
	jQuery("#photoDetails"+photoId).dialog('open');
}

function cancelPhotoDetails(photoId) {
	jQuery("#photoDetails"+photoId).dialog('close');
}

function removeMediaFromStore(mediaId) {
	jQuery.post(
		"/actions/ajaxServ.php",
		{
			content: "removeMediaFromStore",
			mediaId: mediaId
		},
		function(data) {
			window.location.reload();
		}
	);
}

function communityInvite(action, communityId, userId) {
	jQuery.post(
		"/actions/ajaxServ.php",
		{
			content: 'communityInvite',
			action: action,
			communityId: communityId,
			userId: userId
		},
		function(data) {
			window.location.reload();
		}
	);
}

function toggleGroups(what) {
	if (document.getElementById(what).style.display == 'none') {
		document.getElementById(what).style.display = 'block';
		document.getElementById(what).style.visibility = 'visible';
	} else {
		document.getElementById(what).style.display = 'none';
		document.getElementById(what).style.visibility = 'hidden';
	}
}


function deletePrivacyGroup(id,title){
	if (window.confirm("Are you sure you want to delete the groups, \""+title+"\"?")) {
		jQuery('#pgContainer_'+id).hide(
			'slow',
			function() {
				jQuery.post(
					'/actions/ajaxServ.php',
					{ content: 'deletePrivacyGroup', privacyGroupId: id	}
				);
			}
		);
	}
}


function deleteAlbum(id,title){
	if (window.confirm("Are you sure you want to delete \""+title+"\" (photos will not be deleted)?")) {
		jQuery('#albumCont'+id).hide(
			'slow',
			function() {
				jQuery.post('/lib/user.php?'+'delete='+encodeURIComponent(id)+'&type='+encodeURIComponent('album')+'&this='+sid);
			}
		);
	}
}

function updatePhotoWatermakSettings(watermarkId, watermarkPosition) {
	var settingsInput = jQuery("#watermark_settings_" + watermarkTargetPhotoId);

	var values = settingsInput.val();

	if (values == '') {
		list = "0|0";
	}

	var list = values.split(/\|/);

	if (watermarkId != null) {
		list[0] = watermarkId;
	}

	if (watermarkPosition != null) {
		list[1] = watermarkPosition;
	}

	values = list.join('|');
	
	settingsInput.val(values);
}

function selectWatermarkPosition(watermarkPosition) {
	updatePhotoWatermakSettings(null, watermarkPosition);
}

function selectWatermarkPhoto(event, watermarkId) {
	updatePhotoWatermakSettings(watermarkId, null);
	
	jQuery("#watermarkPanelDisplay img").removeClass('watermarkSelected');
	jQuery(event).addClass('watermarkSelected');
}

function loadWatermarkDisplay() {
	jQuery.get(
		"/actions/ajaxServ.php",
		{
			content: "getWatermarks"
		},
		function(data) {
			jQuery("#watermarkPanel .items").html(data);
			jQuery("div.scrollable").scrollable({
				size: 3,
				clickable: false
			});
		}
	);
}

function watermarkPhoto(photoId) {
	jQuery("#watermarkPanel").dialog('open');
	
	watermarkTargetPhotoId = photoId;

	loadWatermarkDisplay();

	if (swfu) {
		return;
	}

	jQuery("#uploadify").uploadify({
		'uploader'	: '/upload/scripts/uploadify.swf',
		'script'	: '/upload/flash-upload-handler.php',
		'cancelImg' : '/upload/cancel.png',
		'folder'	: '/upload/uploads',
		'wmode'		: 'transparent',
		'fileExt'	: "*.jpg;*.gif;*.png",
		'fileDesc'	: "*.jpg;*.gif;*.png",
		'queueID'	: 'fsUploadProgress',
		'sizeLimit'	: 500000,
		'auto'		: true,
		'multi'		: false,
		scriptData	: {
			'PHPSESSID' : session_id,
			watermarkPhoto: 1 
		},
		onComplete	: function() {
			loadWatermarkDisplay();
		}
	});

	swfu = true;
}	

editorPhotoAngle = 0;

function saveEditorPhotosRotation() {
	var photos = jQuery("#photosInner div:not(#EditorGreeting");
	var idList = [];

	if (photos.length > 0) {
		for (var i=0; i < photos.length; i++) {
			idList.push(Number(jQuery(photos[i]).attr('photoId')));
		}
	}

	jQuery.post(
		"/actions/ajaxServ.php",
		{
			content: 'photoRotate',
			photoId: idList.join(','),
			angle: editorPhotoAngle,
			multiple: 1
		}
	);

}

function rotateEditorPhotos(angle) {
	var photos = jQuery("#photosInner div.divIsDraggable:not(#EditorGreeting)");

	editorPhotoAngle = angle;

	if (photos.length > 0) {
		for (var i=0; i < photos.length; i++) {
			doDivRotation(photos[i], angle);
		}
	}
}



function doDivRotation(el, p_deg) {
	var div = jQuery(el);
	var hack1 = false;
	var image;

	div.attr('angle', p_deg);

	if (div.find("canvas").length == 1) {
		var canvas = div.find("canvas")[0];
	} else if (G_vmlCanvasManager == undefined) {
		var canvas = document.createElement('canvas');
		div.append(canvas);
	} else {
		hack1 = true;
	}

	if (!hack1) {
		image = new Image();
		image.src = div.css('background-image').match(/url\((.+)\)/)[1]
	} else {
		if (div.find('img').length == 1) {
			image = div.find('img')[0];
		} else {
			image = new Image();
			image.src = div.css('background-image').match(/url\((.+)\)/)[1]
			div.append(image);
		}
		
	}

	if(canvas) {
		if (G_vmlCanvasManager != undefined) { // ie IE
			if (canvas.getContext == undefined) {
				G_vmlCanvasManager.initElement(canvas);
			}
		}

		var canvasContext = canvas.getContext('2d');

		switch(p_deg) {
			case 90 :
				canvas.setAttribute('width', image.height);
				canvas.setAttribute('height', image.width);
				canvasContext.rotate(p_deg * Math.PI / 180);
				canvasContext.drawImage(image, 0, -image.height);
				break;
			case 180 :
				canvas.setAttribute('width', image.width);
				canvas.setAttribute('height', image.height);
				canvasContext.rotate(p_deg * Math.PI / 180);
				canvasContext.drawImage(image, -image.width, -image.height);
				break;
			case 270 :
			case -90 :
				canvas.setAttribute('width', image.height);
				canvas.setAttribute('height', image.width);
				canvasContext.rotate(p_deg * Math.PI / 180);
				canvasContext.drawImage(image, -image.width, 0);
				break;
			case 0 :
			default :
				canvas.setAttribute('width', image.width);
				canvas.setAttribute('height', image.height);
				canvasContext.rotate(p_deg * Math.PI / 180);
				canvasContext.drawImage(image, 0, 0);
				break;
		};

//		image.style.display = 'none';
//		div.css('background-image', '');
		jQuery(canvas).css('margin-top', '3px');
		canvas.style.display = '';
		
	} else if (G_vmlCanvasManager != undefined) {
		/*
		Ok!: MSIE 6 et 7
		*/
		var image = document.getElementById('image');
		switch(p_deg) {
			default :
			case 0 :
				image.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=0)';
				break;
			case 90 :
				image.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=1)';
				break;
			case 180 :
				image.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=2)';
				break;
			case 270 :
			case -90 :
				image.style.filter = 'progid:DXImageTransform.Microsoft.BasicImage(rotation=3)';
				break;
		};
		
	};
};


function markRead(messageId) {
	jQuery.post(
		"/actions/ajaxServ.php",
		{
			content: 'markMessageRead',
			messageId: messageId
		},
		function (data) {
			return;
		}
	);	
}

function refreshInboxMessages() {
	setInterval(
		function() {
			if (currentInboxPage.received == 1) {
				getInboxMessages(1, 'received');
			}
			if (currentInboxPage.sent == 1) {
				getInboxMessages(1, 'sent');
			}
			if (currentInboxPage.comment == 1) {
				getInboxMessages(1, 'comment');
			}
		},
		300000
	);
}

function getInboxMessages(page, type) {
	jQuery.post(
		"/actions/ajaxServ.php",
		{
			content: 'getInboxMessages',
			page: page,
			type: type
		},
		function (data) {
			if (type == 'received') {
				jQuery("#inbox_recv").html(data);
				currentInboxPage.received = page;
			} else if (type == 'sent') {
				jQuery("#inbox_sent").html(data);
				currentInboxPage.sent = page;
			} else if (type == 'comment') {
				jQuery("#inbox_comment").html(data);
				currentInboxPage.comment = page;
			}
		}
	);
}

// incomplete function? 
// might be useful to implement a trap function to insert into code to see if it gets used by sending an ajax request
// notifying devs
function shareAlbum(photoId) {
	jQuery.getJSON(
		"/actions/editorServ.php",
		{ route: 'editor/get/community' },
		function (data) {
			if (data) {
				showCommunity(photoId, data);
			}
		}
	);
}

function showShareList(albumId, communityList) {
	var div = jQuery("<div/>");

	for (var i=0; i < communityList.length; i++) {
		item = communityList[i];

		var comm = jQuery("<div class=\"commListDetails\"/>");

		var clickHandler = (function(photoId,communityId, divToClose) {
			return function(event) {
				var params = {
					route: 'editor/save/communityDrop',
					communityId: communityId,
					photoId: photoId
				};

				jQuery.post(
					"/actions/editorServ.php",
					params,
					function(data) {
						divToClose.dialog('close');
						divToClose.remove();
					}
				);
			};
		})(photoId, item.id, div);

/*
		var avatar = jQuery("<img />");
		avatar.click(clickHandler);
*/

		var link = jQuery("<a href=\"#\" />");
		link.html(item.name);
		link.click(clickHandler);
		
		jQuery("<div class=\"commListDetail\" />").html(link).appendTo(comm);
		
		comm.append("<br clear=\"all\" />");
		
		comm.appendTo(div);
	}

	div.dialog({
		modal: true
	});

	div.dialog('open');
}

function filterByGroup() {
	jQuery.getJSON(
		"/actions/ajaxServ.php",
		{ content: 'getGroups' },
		function (data) {
			if (data) {
				showGroups(data);
			}
		}
	);
}

function showGroups(groupList) {
	var div = jQuery("<div/>");

	div.html("<div>Select a group to filter by:</div><br /><br />");

	for (var i=0; i < groupList.length; i++) {
		item = groupList[i];

		var comm = jQuery("<div class=\"commListDetails\"/>");

		var clickHandler = (function(groupId, divToClose) {
			return function(event) {
				window.location.href = "/me/?friends/group/" + groupId;
			};
		})(item.id, div);

		var link = jQuery("<a href=\"#\" />");
		link.html(item.name);
		link.click(clickHandler);
		
		jQuery("<div class=\"commListDetail\" />").html(link).appendTo(comm);
		
		comm.append("<br clear=\"all\" />");
		
		comm.appendTo(div);
	}

	div.dialog({
		modal: true
	});

	div.dialog('open');
}

function saveToCommunity(photoId) {
	jQuery.getJSON(
		"/actions/ajaxServ.php",
		{ content: 'getCommunities' },
		function (data) {
			if (data) {
				showCommunity(photoId, data);
			}
		}
	);
}

function showCommunity(photoId, communityList) {
	var div = jQuery("<div/>");
		
	for (var i=0; i < communityList.length; i++) {
		var item = communityList[i];
	
		var comm = jQuery("<div class=\"commListDetails\"/>");

		var clickHandler = (function(photoId,communityId, divToClose) {
			return function(event) {
				var params = {
					route: 'editor/save/communityDrop',
					communityId: communityId,
					photoId: photoId
				};
	
				jQuery.post(
					"/actions/editorServ.php",
					params,
					function(data) {
						divToClose.dialog('close');
						divToClose.remove();
					}
				);
			};
		})(photoId, item.id, div);

		var avatar = jQuery("<img />");
		avatar.attr('src', '/media/' + item.avatar);
		avatar.click(clickHandler);
		
		var link = jQuery("<a href=\"#\" />");
//		link.append(avatar);
		link.append(item.name);
		link.click(clickHandler);
		
		jQuery("<div class=\"commListDetail\" />").html(link).appendTo(comm);
		
		comm.append("<br clear=\"all\" />");
		
		comm.appendTo(div);
	}

	div.dialog({
		modal: true
	});

	div.dialog('open');
}

function savePreferences(accountType) {
	var url = "/actions/account.php";
	var params = {};

	if (accountType == 'details') {
		params.route = 'account/save/details';

		params.age = jQuery("#age").val();
		params.loc_city = jQuery("#loc_city").val();
		params.loc_state = jQuery("#loc_state").val();
		params.loc_country = jQuery("#loc_country").val();
		params.loc_zip = jQuery("#loc_zip").val();
		params.website = jQuery("#website").val();
		params.gender = jQuery("#gender").val();
		params.about_me = jQuery("#about_me").val();
		params.marital_status = jQuery("#marital_status").val();

		params.show_age = Number(jQuery("#show_age").attr('checked'));
		params.show_location = Number(jQuery("#show_location").attr('checked'));
		params.show_gender = Number(jQuery("#show_gender").attr('checked'));
		params.show_website = Number(jQuery("#show_website").attr('checked'));
		params.show_maritalStatus = Number(jQuery("#show_maritalStatus").attr('checked'));
		params.show_aboutMe = Number(jQuery("#show_aboutMe").attr('checked'));
		
		profileEditDetails(true);
	} else if (accountType == 'twitterAccount') {
		params.route = 'account/save/twitter';
		
		params.username = jQuery("#twitterUsername").val();
		params.password = jQuery("#twitterPassword").val();
		params.check1 = Number(jQuery("#twitCheck1").attr('checked'));
		params.check2 = Number(jQuery("#twitCheck2").attr('checked'));
		params.check3 = Number(jQuery("#twitCheck3").attr('checked'));
		params.check4 = Number(jQuery("#twitCheck4").attr('checked'));
		params.check5 = Number(jQuery("#twitCheck5").attr('checked'));
		params.check6 = Number(jQuery("#twitCheck6").attr('checked'));
		params.check7 = Number(jQuery("#twitCheck7").attr('checked'));
		params.check8 = Number(jQuery("#twitCheck8").attr('checked'));
		params.check9 = Number(jQuery("#twitCheck9").attr('checked'));
	} else if (accountType == 'facebookAccount') {
		params.route = 'account/save/facebook';
		params.check1 = Number(jQuery("#fbCheck1").attr('checked'));
		params.check2 = Number(jQuery("#fbCheck2").attr('checked'));
		params.check3 = Number(jQuery("#fbCheck3").attr('checked'));
		params.check4 = Number(jQuery("#fbCheck4").attr('checked'));
		params.check5 = Number(jQuery("#fbCheck5").attr('checked'));
		params.check6 = Number(jQuery("#fbCheck6").attr('checked'));
		params.check7 = Number(jQuery("#fbCheck7").attr('checked'));
		params.check8 = Number(jQuery("#fbCheck8").attr('checked'));
		params.check9 = Number(jQuery("#fbCheck9").attr('checked'));
	} else if (accountType == 'emailNotify') {
		params.route = 'account/save/emailNotify';

		params.recv_msg = Number(jQuery("#recv_msg").attr('checked'));
		//params.recv_vote = Number(jQuery("#recv_vote").attr('checked'));
		params.recv_comment = Number(jQuery("#recv_comment").attr('checked'));
		params.recv_featured = Number(jQuery("#recv_featured").attr('checked'));
		//params.contact_updated = Number(jQuery("#contact_updated").attr('checked'));
		params.recv_community_invite = Number(jQuery("#recv_community_invite").attr('checked'));
		params.recv_album_share = Number(jQuery("#recv_album_share").attr('checked'));
	} else if (accountType == 'creditCard') {
		params.route = 'account/save/creditCard';

		params.ccState = jQuery("#ccState").val();
		params.ccCountry = jQuery("#ccCountry").val();
		params.ccCity = jQuery("#ccCity").val();
		params.ccAddress1 = jQuery("#ccAddress1").val();
		params.ccNumber = jQuery("#ccNumber").val();
		params.ccName = jQuery("#ccName").val();

		params.ccMonth = jQuery("#ccMonth").val();
		params.ccYear = jQuery("#ccYear").val();

	}

	jQuery.post(
		url,
		params,
		function(data) {
			//console.log(data);
		}
	);
}


var initEditorDragDrop = function() {
//#EditorGreeting

	jQuery("#myphotos div.divIsDraggable").draggable(
		{
			helper: function(event, ui) {
				var clone = jQuery(event.target).clone();
				clone.css('z-index','12000');
				jQuery("body").append(clone);
				return clone;
			},
			connectToSortable: "#photosInner"
		}
	);

	jQuery("div.albumDroppable").droppable({
		hoverClass: 'drop-hover',
		drop: function(event, ui) {
			var parts = ui.draggable.attr('id').split(/_/);
			var oid = parts;
		}
	});

	jQuery("div.communityIsDroppable").droppable({
		hoverClass: 'drop-hover',
		drop: function(event, ui) {
			var parts = ui.draggable.attr('id').split(/_/);
			var cParts = event.target.id.split(/_/);
			var oid = parts[1];
			var cId = cParts[1];

			var params = {
				route: 'editor/save/communityDrop',
				communityId: cId,
				photoId: oid
			};

			jQuery.post(
				"/actions/editorServ.php",
				params
			);
		}

	});

	jQuery("div.privacyGroupDroppable").droppable({
		hoverClass: 'drop-hover',
		drop: function(event, ui) {
			var parts = ui.draggable.attr('id').split(/_/);
			var cParts = event.target.id.split(/_/);
			var type = parts[0];
			var oid = parts[1];
			var pgId = cParts[1];

			var params = {
				route: 'editor/save/privacyGroupDrop',
				privacyGroupId: pgId
			};

			if (type == 'user') {
				params.memberId = oid;
			} else {
				params.photoId = oid;
			}


			jQuery.post(
				"/actions/editorServ.php",
				params
			);
		}
	});

/*
	jQuery("#photosInner").droppable({
		drop: function(event, ui) {
			var clone = ui.draggable.clone();
			var parts = ui.draggable.attr('id').split(/_/);
			var oid = parts;
			jQuery("#EditorGreeting").hide();
			clone.attr('id','').appendTo("#photosInner");
		}
		
	});
*/

	jQuery("#photosInner").droppable({
		drop: function(event, ui) {
			var photoId = ui.draggable.attr('id').split(/_/)[1];

			jQuery("#EditorGreeting").hide();
            jQuery("#editLinks2").hide();
			jQuery("#editLinks").show();


			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'over') {
				return false;
			}

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'out') {
				return false;
			}


			if (jQuery.inArray(photoId,photoIds) == -1) {
				var clone = ui.draggable.clone();
				clone.attr('id','').appendTo("#photosInner");
				clone.draggable(
					{
/*
						helper: function(event, ui) {
							var clone = jQuery(event.target).clone();
							clone.originalElement = jQuery(event.target);
							jQuery("body").append(clone);
							return clone;
						},
*/
						stop: function(e, ui) { // check if photo was dragged outside of the droppable area
							if (ui.helper.attr('entryState') == 'out') {
								var photoId = ui.helper.attr('photoId');
								ui.helper.remove();
//								jQuery(ui.helper.attr('orig')).remove();
								
								delPhoto(photoId);
							}
						} // end stop
					} // end clone draggable options
				);
				
				clone.attr('entryState','in');
				clone.attr('isEntry','1');
				clone.attr('photoId', photoId);

				addPhoto(photoId);
			}
		},

		// flag the dragged object if it goes back inside the droppable area
		over: function(event, ui) {
			ui.draggable.attr('entryState','over');
		},
		
		// flag the dragged object if it goes outside the droppable area
		out: function(event, ui) {
			ui.draggable.attr('entryState','out');
		}
	});

};

function initMembersDrag(force) {
	if (!force && initMembersDrag.init == 1) {
		return;
	}

	initMembersDrag.init = 1;
	jQuery("#members div.divIsDraggable").draggable(
		{
			helper: function(event, ui) {
				var clone = jQuery(event.target).clone();
				jQuery("body").append(clone);
				return clone;
			}
		}
	);
}

initMembersDrag.init = 0;

function addPhoto(photoId) {
	photoIds.push(parseInt(photoId));
}

function delPhoto(photoId) {
	var newList = [];

	for (var i=0; i < photoIds.length; i++) {
		if (photoIds[i] != photoId) {
			newList.push(photoIds[i]);
		}
	}

	photoIds = newList;
}

function addAlbumPhoto(photoId) {
	albumIds.push(parseInt(photoId));

	jQuery("#albumSpec span.albumCount").html(albumIds.length);
}

function delAlbumPhoto(photoId) {
	var newList = [];

	for (var i=0; i < albumIds.length; i++) {
		if (albumIds[i] != photoId) {
			newList.push(albumIds[i]);
		}
	}

	albumIds = newList;
	
	jQuery("#albumSpec span.albumCount").html(albumIds.length);
}

function addAlbumMember(memberId) {
	albumMemberIds.push(parseInt(memberId));
}

function delAlbumMember(memberId) {
	var newList = [];

	for (var i=0; i < albumMemberIds.length; i++) {
		if (albumMemberIds[i] != memberId) {
			newList.push(albumMemberIds[i]);
		}
	}

	albumMemberIds = newList;
}


function switchAlbumMode(albumId, mode) {
	if (mode == 'photos') {
		jQuery("#currentAlbumMemberEditor").hide();
		jQuery("#currentAlbumEditor").show();
		jQuery("#myphotosmenu .editorPhotosLink").show();
		jQuery("#myphotosmenu .editorMembersLink").hide();
		jQuery('#myphotos').show();
		jQuery('#members').hide();
		initAlbumDroppable(albumId);
	} else if (mode == 'members') {
		jQuery('#myphotos').hide();
		jQuery('#members').show();
		jQuery("#myphotosmenu .editorPhotosLink").hide();
		jQuery("#myphotosmenu .editorMembersLink").show();
		initMembersDrag();
		jQuery("#currentAlbumEditor").hide();
		jQuery("#currentAlbumMemberEditor").show();
		initAlbumMemberDroppable(albumId);
	}
}


function reInitIdList(mode, type, id) {

	if (mode == 'album' && type == 'photo') {
	}
	if (mode == 'album' && type == 'user') {
		jQuery("#currentAlbumMemberEditor div.divIsDraggable").attr('insideState','1').attr('entryState','in').attr('isEntry','1');
		
		albumMemberIds = [];
		
		var members = jQuery("#currentAlbumMemberEditor div.divIsDraggable");
		
		for (var i=0; i < members.length; i++) {
			var member = jQuery(members[i]);
			
			var memberId = parseInt(member.attr('id').split(/_/)[1]);
			member.attr('photoId', memberId);
			addAlbumMember(memberId);
		}
	}

	if (mode == 'group' && type == 'photo') {
		var pgId = id;
		jQuery("#pgPhotos_" + pgId + " div.divIsDraggable").attr('insideState','1').attr('entryState','in').attr('isEntry','1');
		
		var photos = jQuery("#pgPhotos_" + pgId + " div.divIsDraggable");

		pgPhotoIds = [];

		
		for (var i=0; i < photos.length; i++) {
			var photo = jQuery(photos[i]);
			
			var photoId = parseInt(photo.attr('id').split(/_/)[1]);
			photo.attr('photoId', photoId);
			addPrivacyGroupPhoto(photoId);
		}
	}

	if (mode == 'group' && type == 'user') {
		var pgId = id;

		jQuery("#pgMembers_" + pgId + " div.divIsDraggable").attr('insideState','1').attr('entryState','in').attr('isEntry','1');
		
		var members = jQuery("#pgMembers_" + pgId + " div.divIsDraggable");

		pgMemberIds = [];
		
		for (var i=0; i < members.length; i++) {
			var member = jQuery(members[i]);
			
			var memberId = parseInt(member.attr('id').split(/_/)[1]);
			member.attr('photoId', memberId);
			addPrivacyGroupMember(memberId);
		}
	}

	if (mode == 'community' && type == 'user') {
		var communityId = id;

		jQuery("#communityMembers_" + communityId + " div.divIsDraggable").attr('insideState','1').attr('entryState','in').attr('isEntry','1');
		
		communityMemberIds = [];
		
		var members = jQuery("#communityMembers_" + communityId + " div.divIsDraggable");
		
		for (var i=0; i < members.length; i++) {
			var member = jQuery(members[i]);
			
			var memberId = parseInt(member.attr('id').split(/_/)[1]);
			member.attr('photoId', memberId);
			addCommunityMember(memberId);
		}

	}

	if (mode == 'community' && type == 'photo') {
		var communityId = id;

		jQuery("#communityPhotos_" + communityId + " div.divIsDraggable").attr('insideState','1').attr('entryState','in').attr('isEntry','1');
	
		var photos = jQuery("#communityPhotos_" + communityId + " div.divIsDraggable");

		communityPhotoIds = [];
	
		for (var i=0; i < photos.length; i++) {
			var photo = jQuery(photos[i]);
			
			var photoId = parseInt(photo.attr('id').split(/_/)[1]);
			photo.attr('photoId', photoId);
			addCommunityPhoto(photoId);
		}
	}
}

function initAlbumMemberDroppable(target) {
	reInitIdList('album', 'user');

	jQuery("#members div.divIsDraggable").draggable('option', 'connectToSortable', '#currentAlbumMemberEditor');

	jQuery("#currentAlbumMemberEditor").sortable(
		{
			placeholder: 'ui-state-highlight',
			appendTo: 'body',
			helper: 'clone',

			stop: function(event, ui) {

				var parts = ui.item.attr('id').split(/_/);

				if (jQuery.inArray(parseInt(parts[1]),albumMemberIds) != -1) {
					ui.item.remove();
					delAlbumMember(parts[1]);
				} else {
					var list = jQuery("#currentAlbumMemberEditor").sortable('toArray');
					
					var first = list[0];
					
					for (var i=0; i < list.length; i++) {
						list[i] = parseInt(list[i].split(/_/)[1]);
					}
					albumMemberIds = list;
				}
			}
		}
	);
}

function initAlbumDroppable(target) {
	jQuery("#myphotos div.divIsDraggable").draggable('option', 'connectToSortable', '#currentAlbumEditor');

	jQuery("#currentAlbumEditor div").attr('insideState','1').attr('entryState','in').attr('isEntry','1');

	jQuery("#currentAlbumEditor").sortable(
		{
			placeholder: 'ui-state-highlight',
			appendTo: 'body',
			helper: 'clone',

			stop: function(event, ui) {

				var parts = ui.item.attr('id').split(/_/);

				if (!(ui.item.attr('isEntry') == '1' && ui.item.attr('insideState') == '1') && jQuery.inArray(parseInt(parts[1]),albumIds) != -1) {
					ui.item.remove();
					delAlbumPhoto(parts[1]);
				} else {
					ui.item.attr('insideState','1');
					ui.item.attr('entryState','in');
					ui.item.attr('isEntry','1');

					var list = jQuery("#currentAlbumEditor").sortable('toArray');
					
					var first = list[0];
					
					var bg = jQuery("#" + first).css('background-image');
					
					jQuery("#albumSpec img.albumHead").attr('src', bg.match(/url\((.*)\)/)[1]);
					
					for (var i=0; i < list.length; i++) {
						list[i] = parseInt(list[i].split(/_/)[1]);
					}

					albumIds = list;

					jQuery("#albumSpec span.albumCount").html(albumIds.length);
				}

			},
			over: function(event, ui) {
				ui.item.attr('entryState','over');
			},

			// flag the dragged object if it goes outside the droppable area
			out: function(event, ui) {
				ui.item.attr('entryState','out');
			},

			beforeStop: function(event, ui) {
				if (ui.item.attr('entryState') == 'over') {
					ui.item.attr('insideState','1');
				}
			},

			start: function(event, ui) {
				ui.item.attr('insideState','0');
			}

		}
	);
}


/*
was this old code no longer being used? can't find any 
traces of it being used but am leaving it in for now
*/
var fooNothing = {
		drop: function(event, ui) {
			var photoId = ui.draggable.attr('id').split(/_/)[1];

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'over') {
				return false;
			}

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'out') {
				return false;
			}


			if (jQuery.inArray(photoId,albumIds) == -1) {
				var clone = ui.draggable.clone();
				clone.attr('id','').appendTo("#currentAlbumEditor");
				clone.draggable(
					{
						stop: function(e, ui) { // check if photo was dragged outside of the droppable area
							if (ui.helper.attr('entryState') == 'out') {
								var photoId = ui.helper.attr('photoId');
								ui.helper.remove();
								
								delAlbumPhoto(photoId);
							}
						} // end stop
					} // end clone draggable options
				);
				
				clone.attr('entryState','in');
				clone.attr('isEntry','1');
				clone.attr('photoId', photoId);

				addAlbumPhoto(photoId);
			}
		},

		// flag the dragged object if it goes back inside the droppable area
		over: function(event, ui) {
				ui.draggable.attr('entryState','over');
		},
		
		// flag the dragged object if it goes outside the droppable area
		out: function(event, ui) {
			ui.draggable.attr('entryState','out');
		}
	};

function savePrivacyGroup(pgId) {
	var pIdList = pgPhotoIds.join(',');
	var mIdList = pgMemberIds.join(',');
	var title = jQuery("#pgTitle_" + pgId).val();
    if (document.getElementById('newgroupbutton'))  document.getElementById('newgroupbutton').style.visibility='visible';

	jQuery.post(
		"/actions/editorServ.php",
		{
			route: 'editor/save/privacyGroup',
			privacyGroupId: pgId,
			photoIds: pIdList,
			memberIds: mIdList,
			title: title
		},
		function(data) {
			if (data == 'limit reached') {
				alert("You have reached the maximum number of groups you are allowed to create.\n\nIf you want to make more please upgrade to premium gold for unlimited privacy groups");
			}
		
			jQuery("#pgSpanTitle_" + pgId).html(title);
			cancelPrivacyGroup(pgId);
		}
	);
}

function editPrivacyGroup(pgId) {
	var pgCon = jQuery("#pgCon_" + pgId);
	var pgEdit = jQuery("#pgEdit_" + pgId);

	if (pgId == 0) {
		jQuery("#pgTitle_0").val('');
		jQuery("#pgPhotos_0").html('');
		jQuery("#pgMembers_0").html('');
	}

    if (document.getElementById('newgroupbutton'))  document.getElementById('newgroupbutton').style.visibility='hidden';
	jQuery("div.privacyGroupContainer").hide();
	pgEdit.show();

	initGroupDroppable(pgId);
}

function cancelPrivacyGroup(pgId) {
	var pgCon = jQuery("#pgCon_" + pgId);
	var pgEdit = jQuery("#pgEdit_" + pgId);
    if (document.getElementById('newgroupbutton'))  document.getElementById('newgroupbutton').style.visibility='visible';
	pgEdit.hide();
	reloadPrivacyGroupPage();
	jQuery("div.privacyGroupContainer").show();
}

function addPrivacyGroupPhoto(photoId) {
	pgPhotoIds.push(parseInt(photoId));
}

function delPrivacyGroupPhoto(photoId) {
	var newList = [];

	for (var i=0; i < pgPhotoIds.length; i++) {
		if (pgPhotoIds[i] != photoId) {
			newList.push(pgPhotoIds[i]);
		}
	}

	pgPhotoIds = newList;
}
function addPrivacyGroupMember(photoId) {
	pgMemberIds.push(parseInt(photoId));
}

function delPrivacyGroupMember(photoId) {
	var newList = [];

	for (var i=0; i < pgMemberIds.length; i++) {
		if (pgMemberIds[i] != photoId) {
			newList.push(pgMemberIds[i]);
		}
	}

	pgMemberIds = newList;
}

function switchPgMode(pgId, mode) {
	if (mode == 'photos') {
		jQuery("#pgMembers_" + pgId).hide();
		jQuery("#pgPhotos_" + pgId).show();

		jQuery('#myphotos').show();
		jQuery('#members').hide();

		jQuery("#myphotosmenu .editorPhotosLink").show();
		jQuery("#myphotosmenu .editorMembersLink").hide();

		initGroupDroppable(pgId);
	} else if (mode == 'members') {
		jQuery('#myphotos').hide();
		jQuery('#members').show();

		jQuery("#myphotosmenu .editorPhotosLink").hide();
		jQuery("#myphotosmenu .editorMembersLink").show();

		initMembersDrag();
		jQuery("#pgPhotos_" + pgId).hide();
		jQuery("#pgMembers_" + pgId).show();
		initGroupMemberDroppable(pgId);
	}
}

function initGroupDroppable(pgId) {
	reInitIdList('group', 'photo', pgId);

	if (typeof pgPhotoInit[pgId] == 'undefined') {
		pgPhotoInit[pgId] = true;
	} else {
		jQuery("#myphotos div.divIsDraggable").draggable('option', 'connectToSortable', '#pgPhotos_' + pgId);
		return;
	}

//	jQuery("#pgPhotos_" + pgId + " div.divIsDraggable").attr('insideState','1').attr('entryState','in').attr('isEntry','1');

	jQuery("#myphotos div.divIsDraggable").draggable('option', 'connectToSortable', '#pgPhotos_' + pgId);

	jQuery("#pgPhotos_" + pgId + " div.divIsDraggable").draggable(
		{
			helper: function(event, ui) {
				var clone1 = jQuery(event.target).clone();
				clone1.attr('id', '');
				clone1.originalElement = jQuery(event.target);
				jQuery("body").append(clone1);
				return clone1;
			},
			stop: function(e, ui) { // check if photo was dragged outside of the droppable area
				if (ui.helper.attr('entryState') == 'out') {
					var photoId = ui.helper.attr('photoId');
					jQuery("#photo_" + photoId).remove();
					delPrivacyGroupPhoto(photoId);
				}
			} // end stop
		} // end clone draggable options
	);

	jQuery("#pgPhotos_" + pgId).droppable({
		drop: function(event, ui) {
			var photoId = parseInt(ui.draggable.attr('id').split(/_/)[1]);

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'over') {
				return false;
			}

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'out') {
				return false;
			}


			if (jQuery.inArray(photoId,pgPhotoIds) == -1) {
				var clone = ui.draggable.clone();
				clone.attr('id','pgPhoto_'+photoId).appendTo("#pgPhotos_" + pgId);
				clone.draggable(
					{
						helper: function(event, ui) {
							var clone1 = jQuery(event.target).clone();
							clone1.attr('id', '');
							clone1.originalElement = jQuery(event.target);
							jQuery("body").append(clone1);
							return clone1;
						},
						stop: function(e, ui) { // check if photo was dragged outside of the droppable area
							if (ui.helper.attr('entryState') == 'out') {
								var photoId = ui.helper.attr('photoId');
								jQuery("#pgPhoto_" + photoId).remove();
								delPrivacyGroupPhoto(photoId);
							}
						} // end stop
					} // end clone draggable options
				);
				
				clone.attr('entryState','in');
				clone.attr('isEntry','1');
				clone.attr('photoId', photoId);

				addPrivacyGroupPhoto(photoId);
			}
		},

		// flag the dragged object if it goes back inside the droppable area
		over: function(event, ui) {
				ui.helper.attr('entryState','over');
		},
		
		// flag the dragged object if it goes outside the droppable area
		out: function(event, ui) {
			ui.helper.attr('entryState','out');
		}
	});
}


function initGroupMemberDroppable(pgId) {
	reInitIdList('group', 'user', pgId);

	if (typeof pgMemberInit[pgId] == 'undefined') {
		pgMemberInit[pgId] = true;
	} else {
		jQuery("#members div.divIsDraggable").draggable('option', 'connectToSortable', '#pgMembers_' + pgId);
		return;
	}

	jQuery("#members div.divIsDraggable").draggable('option', 'connectToSortable', '#pgMembers_' + pgId);

	jQuery("#pgMembers_" + pgId + " div.divIsDraggable").draggable(
		{
			helper: function(event, ui) {
				var clone1 = jQuery(event.target).clone();
				clone1.attr('id', '');
				clone1.originalElement = jQuery(event.target);
				jQuery("body").append(clone1);
				return clone1;
			},
			stop: function(e, ui) { // check if photo was dragged outside of the droppable area
				if (ui.helper.attr('entryState') == 'out') {
					var memberId = parseInt(ui.helper.attr('photoId'));

					jQuery("#user_" + memberId).remove();
					delPrivacyGroupMember(memberId);
				}
			} // end stop
		} // end clone draggable options
	);


	jQuery("#pgMembers_" + pgId).droppable({
		drop: function(event, ui) {
			var photoId = parseInt(ui.draggable.attr('id').split(/_/)[1]);

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'over') {
				return false;
			}

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'out') {
				return false;
			}

			if (jQuery.inArray(photoId,pgMemberIds) == -1) {
				var clone = ui.draggable.clone();
				clone.attr('id','pgMember_'+photoId).appendTo("#pgMembers_" + pgId);
				clone.draggable(
					{
						helper: function(event, ui) {
							var clone1 = jQuery(event.target).clone();
							clone1.attr('id', '');
							clone1.originalElement = jQuery(event.target);
							jQuery("body").append(clone1);
							return clone1;
						},
						stop: function(e, ui) { // check if photo was dragged outside of the droppable area
							if (ui.helper.attr('entryState') == 'out') {
								var photoId = parseInt(ui.helper.attr('photoId'));

								jQuery("#pgMember_" + photoId).remove();
								delPrivacyGroupMember(photoId);
							}
						} // end stop
					} // end clone draggable options
				);
				
				clone.attr('entryState','in');
				clone.attr('isEntry','1');
				clone.attr('photoId', photoId);

				addPrivacyGroupMember(photoId);
			}
		},

		// flag the dragged object if it goes back inside the droppable area
		over: function(event, ui) {
				ui.helper.attr('entryState','over');
		},
		
		// flag the dragged object if it goes outside the droppable area
		out: function(event, ui) {
			ui.helper.attr('entryState','out');
		}
	});
}



function switchCommunityMode(communityId, mode) {
	if (mode == 'photos') {
		jQuery("#communityMembers_" + communityId).hide();
		jQuery("#communityPhotos_" + communityId).show();

		jQuery('#myphotos').show();
		jQuery('#members').hide();

		jQuery("#myphotosmenu .editorPhotosLink").show();
		jQuery("#myphotosmenu .editorMembersLink").hide();

		initCommunityDroppable(communityId);
	} else if (mode == 'members') {
		jQuery('#myphotos').hide();
		jQuery('#members').show();

		jQuery("#myphotosmenu .editorPhotosLink").hide();
		jQuery("#myphotosmenu .editorMembersLink").show();

		initMembersDrag();
		jQuery("#communityPhotos_" + communityId).hide();
		jQuery("#communityMembers_" + communityId).show();
		initCommunityMemberDroppable(communityId);
	}
}

function saveCommunity(communityId) {
	var pIdList = communityPhotoIds.join(',');
	var mIdList = communityMemberIds.join(',');

	jQuery.post(
		"/actions/editorServ.php",
		{
			route: 'editor/save/community',
			communityId: communityId,
			photoIds: pIdList,
			memberIds: mIdList
		},
		function(data) {
			cancelCommunity(communityId);
		}
	);
}

function editCommunity(communityId) {
	var communityCon = jQuery("#communityCon_" + communityId);
	var communityEdit = jQuery("#communityEdit_" + communityId);

	jQuery("div.communityIsDroppable").hide();
	communityEdit.show();

	initCommunityDroppable(communityId);

	return false;
}

function cancelCommunity(pgId) {
	if (editingCommunity) {
		var x = (communityNameToEdit != '') ? communityNameToEdit : communityIdToEdit;
		window.location.href = "/photo-communities/" + x;
	}

	var communityCon = jQuery("#communityCon_" + pgId);
	var communityEdit = jQuery("#communityEdit_" + pgId);

	communityEdit.hide();
	jQuery("div.communityIsDroppable").show();
}

function initCommunityDroppable(communityId) {
	reInitIdList('community', 'photo', communityId);

	if (typeof communityPhotoInit[communityId] == 'undefined') {
		communityPhotoInit[communityId] = true;
	} else {
		jQuery("#myphotos div.divIsDraggable").draggable('option', 'connectToSortable', '#communityPhotos_' + communityId);
		return;
	}

	jQuery("#myphotos div.divIsDraggable").draggable('option', 'connectToSortable', '#communityPhotos_' + communityId);

	jQuery("#communityPhotos_" + communityId + " div.divIsDraggable").draggable(
		{
			helper: function(event, ui) {
				var clone1 = jQuery(event.target).clone();
				clone1.attr('id', '');
				clone1.originalElement = jQuery(event.target);
				jQuery("body").append(clone1);
				return clone1;
			},
			stop: function(e, ui) { // check if photo was dragged outside of the droppable area
				if (ui.helper.attr('entryState') == 'out') {
					var photoId = ui.helper.attr('photoId');
					jQuery("#photo_" + photoId).remove();
					delCommunityPhoto(photoId);
				}
			} // end stop
		} // end clone draggable options
	);

	jQuery("#communityPhotos_" + communityId).droppable({
		drop: function(event, ui) {
			var photoId = parseInt(ui.draggable.attr('id').split(/_/)[1]);

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'over') {
				return false;
			}

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'out') {
				return false;
			}


			if (jQuery.inArray(photoId,communityPhotoIds) == -1) {
				var clone = ui.draggable.clone();
				clone.attr('id','communityPhoto_'+photoId).appendTo("#communityPhotos_" + communityId);
				clone.draggable(
					{
						helper: function(event, ui) {
							var clone1 = jQuery(event.target).clone();
							clone1.attr('id', '');
							clone1.originalElement = jQuery(event.target);
							jQuery("body").append(clone1);
							return clone1;
						},
						stop: function(e, ui) { // check if photo was dragged outside of the droppable area
							if (ui.helper.attr('entryState') == 'out') {
								var photoId = ui.helper.attr('photoId');
								jQuery("#communityPhoto_" + photoId).remove();
								delCommunityPhoto(photoId);
							}
						} // end stop
					} // end clone draggable options
				);
				
				clone.attr('entryState','in');
				clone.attr('isEntry','1');
				clone.attr('photoId', photoId);

				addCommunityPhoto(photoId);
			}
		},

		// flag the dragged object if it goes back inside the droppable area
		over: function(event, ui) {
				ui.helper.attr('entryState','over');
		},
		
		// flag the dragged object if it goes outside the droppable area
		out: function(event, ui) {
			ui.helper.attr('entryState','out');
		}
	});
}


function initCommunityMemberDroppable(communityId) {
	reInitIdList('community', 'user', communityId);


	if (typeof communityMemberInit[communityId] == 'undefined') {
		communityMemberInit[communityId] = true;
	} else {
		jQuery("#members div.divIsDraggable").draggable('option', 'connectToSortable', '#communityMembers_' + communityId);
		return;
	}

	jQuery("#members div.divIsDraggable").draggable('option', 'connectToSortable', '#communityMembers_' + communityId);

	jQuery("#communityMembers_" + communityId + " div.divIsDraggable").draggable(
		{
			helper: function(event, ui) {
				var clone1 = jQuery(event.target).clone();
				clone1.attr('id', '');
				clone1.originalElement = jQuery(event.target);
				jQuery("body").append(clone1);
				return clone1;
			},
			stop: function(e, ui) { // check if photo was dragged outside of the droppable area
				if (ui.helper.attr('entryState') == 'out') {
					var memberId = parseInt(ui.helper.attr('photoId'));

					jQuery("#user_" + memberId).remove();
					delCommunityMember(memberId);
				}
			} // end stop
		} // end clone draggable options
	);


	jQuery("#communityMembers_" + communityId).droppable({
		drop: function(event, ui) {
			var photoId = parseInt(ui.draggable.attr('id').split(/_/)[1]);

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'over') {
				return false;
			}

			if (ui.draggable.attr('isEntry') == '1' && ui.draggable.attr('entryState') == 'out') {
				return false;
			}

			if (jQuery.inArray(photoId,pgMemberIds) == -1) {
				var clone = ui.draggable.clone();
				clone.attr('id','communityMembers_'+photoId).appendTo("#communityMembers_" + communityId);
				clone.draggable(
					{
						helper: function(event, ui) {
							var clone1 = jQuery(event.target).clone();
							clone1.attr('id', '');
							clone1.originalElement = jQuery(event.target);
							jQuery("body").append(clone1);
							return clone1;
						},
						stop: function(e, ui) { // check if photo was dragged outside of the droppable area
							if (ui.helper.attr('entryState') == 'out') {
								var photoId = parseInt(ui.helper.attr('photoId'));

								jQuery("#communityMembers_" + photoId).remove();
								delCommunityMember(photoId);
							}
						} // end stop
					} // end clone draggable options
				);
				
				clone.attr('entryState','in');
				clone.attr('isEntry','1');
				clone.attr('photoId', photoId);

				addCommunityMember(photoId);
			}
		},

		// flag the dragged object if it goes back inside the droppable area
		over: function(event, ui) {
				ui.helper.attr('entryState','over');
		},
		
		// flag the dragged object if it goes outside the droppable area
		out: function(event, ui) {
			ui.helper.attr('entryState','out');
		}
	});
}

function addCommunityPhoto(photoId) {
	communityPhotoIds.push(parseInt(photoId));
}

function delCommunityPhoto(photoId) {
	var newList = [];

	for (var i=0; i < communityPhotoIds.length; i++) {
		if (communityPhotoIds[i] != photoId) {
			newList.push(communityPhotoIds[i]);
		}
	}

	communityPhotoIds = newList;
}
function addCommunityMember(photoId) {
	communityMemberIds.push(parseInt(photoId));
}

function delCommunityMember(photoId) {
	var newList = [];

	for (var i=0; i < communityMemberIds.length; i++) {
		if (communityMemberIds[i] != photoId) {
			newList.push(communityMemberIds[i]);
		}
	}

	communityMemberIds = newList;
}


