$(function() {
    var ajaxDialogOpts = {
      modal: true,
      resizable: false,
      width: 650,
      height: 400,
      autoOpen: false
    };
    $("#ajaxDialogFollow").dialog(ajaxDialogOpts);
});

function subscribeMe(sender, entityKey, follow_dialog_title){
	if(userIsAnonymous){
		return showFollowDialog(this, entityKey, follow_dialog_title);
	}
	sender = $(sender);
	btnText = sender.val();
	if(btnText == 'Follow updates'){
		action = 'subscribe';
	}
	else{
		action = 'unsubscribe';
	}
	sender.attr('disabled', true);
	sender.val(sender.val() + ' - processing...');
	data = {target_key: entityKey,
			action: action};
	$.ajax('/api/subscribe/me',
			{type:'POST',
			 data: data,
		 	 dataType: 'json',
			 success: function(data){
				sender.removeAttr('disabled');
				if(action=='subscribe'){
					sender.val('Unfollow updates');
				}
				else{
					sender.val('Follow updates');
				}
		 },
			 error: function(p1, p2, p3){
			 	alert(p1+'\n\n'+p2+'\n\n'+p3)
				 },
			}
	);
}

function followGetAjaxData(dialog){
    return {target_key:dialog.data('target_key')};
}

function onSubscriptionSuccess(sender, data){
	sender = $(sender)
	sender.val("You've subscribed to updates");
	sender.attr("disabled", true);
}

function showFollowDialog(sender, target_key, dialogTitle)
{
	var dialog = $("#ajaxDialogFollow");

    dialog.data('getAjaxData', followGetAjaxData)
    dialog_signed_height_vals["ajaxDialogFollow"] = 100;
    var height = 200;
    
    return showDialogBase(dialog, height, sender, target_key, '/api/subscribe/email', dialogTitle, 'Subscribe me for updates', userIsAnonymous, onSubscriptionSuccess);
}
