var shareCallback = null;
var cancelButtonType = 'cancel';

function sharePopup(mode,type,oid, options) {
	var settings = {
		cancelType: 'cancel',
		message: ''
	};

	jQuery.extend(settings, options);

	if (settings.cancelType != 'cancel') {
		cancelButtonType = settings.cancelType;
	}


	var iframe = document.createElement('iframe');

	iframe.id = "inviteSharePopup";
	iframe.name = "inviteSharePopup";
	iframe.style.display = 'none';
	iframe.style.height = "700px";
	iframe.style.width = "660px";
	iframe.style.border = "0";
/*
	iframe.style.position = "absolute";
	iframe.style.top = "0";
	iframe.style.left = "-330px";
	iframe.style.margin = "0px auto";
	iframe.style.marginLeft = "50%";
	iframe.style.zIndex = "11000";
*/
	if (type == 'submission') {
		iframe.src = "/inviteShare.php?mode="+mode+"&pageType="+type+"&oid="+oid+"&pid="+settings.extraId;
	} else {
		iframe.src = "/inviteShare.php?mode="+mode+"&pageType="+type+"&oid="+oid;
	}

	document.body.appendChild(iframe);
	
	jQuery(iframe).dialog({
		autoOpen: false,
		bgiframe: true,
		height: 580,
		width: 640,
		modal: true,
		
		open: function(event, ui) {
			jQuery(event.target).css('width', '660px');
		}

	});
	
	jQuery(iframe).dialog('open');
	
	return false;
}

function closeSharePopup(action) {
	if (action) {
		if (shareCallback) {
			shareCallback(action);
		}
	}

//	document.getElementById("shareOverlay").style.display = "none";
	jQuery("#inviteSharePopup").dialog('close');
	jQuery("#inviteSharePopup").remove();
}

function shareSubmit() {
	var url = "/actions/share.php";
	var t1 = jQuery("#t1").val();
	var t2 = jQuery("#t2").val();
	var t3 = jQuery("#t3").val();
	var t4 = jQuery("#t4").val();

	var tMessage = jQuery("#tMessage").val();
	
	var oid = jQuery("#oid").val();
	var pid = jQuery("#pid").val();
	var pageType = jQuery("#pageType").val();
	var mode = jQuery("#mode").val();
	var uid = jQuery("#uid").val();

	var params = {
		emails: t1,
		emailGroups: t2,
		privateGroups: t3,
		users: t4,
		oid: oid,
		pid: pid,
		pageType: pageType,
		mode: mode,
		uid: uid,
		message: tMessage
	};

	jQuery.post(
		url,
		params,
		function() {
			parent.closeSharePopup('submit');
		}
	);
}

function acUserSelect(user) {
	var t4 = jQuery("#t4");
	if (t4.val().indexOf(user.username) == -1) {
		t4.append(user.username + ",");
	}
}

//friendAvatar friendUsername friendRealname friendMakeFriend
function acFriendSelect(user) {
	jQuery("#friendResult").show();
	jQuery("#friendUsername").attr('href', "/member/" + user.username);
	jQuery("#friendUsername").html(user.username);
	jQuery("#friendAvatarLink").attr('href', "/member/" + user.username);
	jQuery("#friendRealname").html(user.name);
	if (user.avatar == '') user.avatar = 'images/noavatar.gif';
	jQuery("#friendAvatar").attr('src', "" + user.avatar);

	jQuery("#friendMakeFriend").unbind();
	jQuery("#friendMakeFriend").html('Make a ViewBug Friend');
	jQuery("#friendMakeFriend").click(function(event) {
		jQuery.post( "/actions/ajaxServ.php" , { content: 'addFriend', friendId: user.user_id } );
		return false;
	});
}

var users;
var pageSize = 5;
var pageWidth = pageSize * 80;
var pageMoveTime = 700;
var acTimeAmount = 1100;
var acTimer = null;

function movePage(page) {
	var left = (page-1) * pageWidth * -1;
	left = left + "px";
	jQuery("#userThumbContainer").animate({left: left}, pageMoveTime);
}

function setupPaging() {
	var count = users.length;
	var pages = Math.ceil(count/pageSize);

	movePage(1);

	if (count < 6) {
		return;
	}

	var utPaging = jQuery("#utPaging");

	for (var i=1; i <= pages; i++) {
		var a = jQuery("<a />");

		a.attr('href', '#');

		if (i == 1) {
			a.attr('class','selected');
		}

		a.bind(
			'click',
			(function(page) {
				return function(e) {
					movePage(page);
					jQuery("#utPaging > a").removeClass("selected");
					e.target.className = 'selected';
					return false;
				};
			})(i)
		);

		a.append(i);
		a.appendTo(utPaging);
	}
}

function AutoCompleteSearch() {
	jQuery.getJSON(
		"/actions/shareAutoComplete.php",
		{
			search: jQuery("#acSearchBox").val(),
			out: 'JSON'
		},
		function(data) {
			var utc = document.getElementById("userThumbContainer");
			utc.innerHTML = "";
			document.getElementById("utPaging").innerHTML = "";

			users = data;

			for (var i=0; i < data.length; i++) {
				var thumb = jQuery("<div />");

				if (data[i].avatar == '') {
					data[i].avatar = '/graphics/avatar_generic.jpg';
				} else {
					data[i].avatar = '/media/' + data[i].avatar;
				}

				var img = jQuery("<img src=\"" + data[i].avatar+ "\" />");

				var a = jQuery('<a />');

				thumb.attr('class', "userThumb");

				a.attr('id', 'ut' + data[i].user_id);
				a.attr('href', '#');

				a.bind(
					'click',
					(function(user) {
						return function() {
							acUserSelect(user);
							return false;
						};
					})(data[i])
				);

				img.appendTo(a);
				a.appendTo(thumb);
				thumb.append("<br />");
				thumb.append(" " + data[i].username);
				thumb.appendTo(utc);
			}

			setupPaging();
//			utc.innerHTML = utc.innerHTML + '<br clear="all" />';
		}
	);

}

function AutoCompleteSearchForFriends() {
	jQuery.getJSON(
		"/actions/shareAutoComplete.php",
		{
			search: jQuery("#acSearchBox").val(),
			searchType: "full",
			out: 'JSON'
		},
		function(data) {
			var utc = document.getElementById("userThumbContainer");
			utc.innerHTML = "";
			document.getElementById("utPaging").innerHTML = "";

			users = data;

			for (var i=0; i < data.length; i++) {
				var thumb = jQuery("<div />");
				if (data[i].avatar == '') {
					data[i].avatar = '/graphics/avatar_generic.jpg';
				} else {
					data[i].avatar = '/media/' + data[i].avatar;
				}
				var img = jQuery("<img src=\"" + data[i].avatar+ "\" />");
				var a = jQuery('<a />');

				thumb.attr('class', "userThumb");

				a.attr('id', 'ut' + data[i].user_id);
				a.attr('href', '#');

				a.bind(
					'click',
					(function(user) {
						return function() {
							acFriendSelect(user);
							return false;
						};
					})(data[i])
				);

				img.appendTo(a);
				a.appendTo(thumb);
				thumb.append("<br />");
				thumb.append(" " + data[i].username);
				thumb.appendTo(utc);
			}

			setupPaging();
//			utc.innerHTML = utc.innerHTML + '<br clear="all" />';
		}
	);
}

var acSearchCallback = AutoCompleteSearch;

function acTimedSearch() {
	acSearchCallback();
	acTimer = null;
}

function initAutoComplete() {
	jQuery("#acSearchBox").bind("keypress", function(e) {
		if (acTimer == null) {
			acTimer = setTimeout(acTimedSearch, acTimeAmount);
		} 
    });
}

jQuery().ready(initAutoComplete);
