var dialog_signed_height_vals = [];

function showDialogBase(dialog, height, sender, senderButtonResponseText, target_key, api_url, dialogTitle, dialogSubmitButtonText, userIsAnonymous, onSuccess){
    var dialogId = dialog.attr('id');

	dialog.data('mode', null);

    if( userIsAnonymous=='True'){
        dlgCommentDialog.data('mode', 'send-anonymous');
    }
    console.log('calling: authInitDialog(dialog_id= '+dialogId+', userIsAnonymous=' + userIsAnonymous + ');');
	authInitDialog(dialog.attr('id'), userIsAnonymous);

    dialog.data('mode', 'send-message');

	dialog.data('sender', sender);
    console.log('Target key: ' + target_key);
	dialog.data('target_key', target_key);
	dialog.data('api_url', api_url);
	if(onSuccess!=null){
		dialog.data('onSuccess', onSuccess);
        dialog.data('senderButtonResponseText', senderButtonResponseText);
    }
	var submitButton = $('#'+dialogId+'_authSubmitButton');
    submitButton.val(dialogSubmitButtonText);

	$("#ui-dialog-title-"+dialogId).html(dialogTitle)

	dialog.dialog("open");
    dialog.height(height);
}

function onDialogSuccess(dialog){
	console.log('onDialogSuccess(data) executed');

    if (dialog.data('senderButtonResponseText') != ''){
        $("#"+dialog.data('sender').id).val(dialog.data('senderButtonResponseText'));
    }

}

// contact_us.js

$(function() {
    var ajaxDialogOpts = {
      modal: true,
      resizable: false,
      width: 650,
      height: 400,
      autoOpen: false
    };
    $("#ajaxDialogContactUs").dialog(ajaxDialogOpts);
    $("#ajaxDialogEnroll").dialog(ajaxDialogOpts);
    $("#ajaxDialogWithdraw").dialog(ajaxDialogOpts);
});

function contactUsGetAjaxData(dialog){
    console.log('contactUsGetAjaxData(dialog)');
    return { target_key: dialog.data('target_key'), message: $('#'+$(dialog).attr('id')+'_MessageInput').val() };
}

function showEnrollDialog(sender, happening_kn, happening_title, happening_class, userIsAnonymous, onSuccess){
    $("#enrollDialogSureInput").attr('selectedIndex', 0);
    //var dialog, api_url, dialog_submit_button_text, dialog_title, button_submit_text;

    if ($("#"+sender.id).val() == 'Withdraw'){
        console.log('setting data to withdraw dialog');
        api_url='/api/happening/unenroll';
        dialog_id = "#ajaxDialogWithdraw";
        dialog_submit_button_text = 'Withdraw now';
        button_submit_text = "Enroll in the " + happening_class;
        dialog_title = 'Withdraw from: ' + happening_title;
        console.log('finished setting data to withdraw dialog');
    }
    else{
        console.log('setting data to enroll dialog');
        api_url='/api/happening/enroll';
        dialog_id = "#ajaxDialogEnroll";
        dialog_submit_button_text = 'Enroll now';
        button_submit_text = "Withdraw";
        dialog_title = 'Enroll to: ' + happening_title;
        console.log('finish setting data to enroll dialog');
    }
    dialog = $(dialog_id);
    dialog.data('getAjaxData', enrollmentDialogGetAjaxData);
    return showContactUsDialog(dialog, sender,
        button_submit_text, happening_kn, api_url,
        dialog_title, dialog_submit_button_text, userIsAnonymous, onSuccess);
}

function enrollmentDialogGetAjaxData(dialog){
    var data = contactUsGetAjaxData(dialog);
    data.sure = $("#enrollDialogSureInput").val();
    data.is_public = $("#cbx_is_public").is(":checked");
    data.is_fb_public = $("#cbx_is_fb_public").is(":checked");
    return data;
}

function showContactUsDialog(dialog, sender, senderButtonResponseText, target_key, api_url, dialogTitle, dialogSubmitButtonText, userIsAnonymous, onSuccess)
{
    console.log('showContactUsDialog(dialg='+dialog+', sender, target_key='+target_key+', api_url, dialogTitle, dialogButtonText, isAnonymous, success)');

    if(dialog==null){
        dialog = $("#ajaxDialogContactUs");
        dialog.data('getAjaxData', contactUsGetAjaxData);
    }

    $('#'+dialog.attr('id')+'_MessageInput').val('');

    var height = 300;
    dialog_signed_height_vals[dialog.attr('id')] = height;

	if(userIsAnonymous){
		height = 400;
	}

    return showDialogBase(dialog, height, sender, senderButtonResponseText, target_key, api_url, dialogTitle, dialogSubmitButtonText, userIsAnonymous, onSuccess);
}
