/**
 * funkce pro administraci poradců
 *
 * @author Pavel Plasz <pavel.plasz@keboola.com>
 * @version 1.0
 */

/**
 * aktuálně zpracovávaný prvek
 */
var id;
var $officeId;

/**
 * navěšení handlerů událostí po načtení stránky
 */
$(document).ready(function()
{
	$('.adminButtons a.setup').click(setupOnClick);
	$('.officesList td.admin a.setup').click(setupOnClickList);
	$('.adminButtons a.infoEmail, .consultant .infoNotSent').click(infoEmailOnClick);
	$('.officesList td.admin a.infoEmail').click(infoEmailOnClickList);
	$('.adminButtons a.emailReset').click(emailResetOnClick);
	$('.officesList td.admin a.emailReset').click(emailResetOnClickList);
	$('.adminButtons a.uploadImage').click(uploadImageOnClick);
	$('.adminButtons a.deleteImage').click(deleteImageOnClick);
	$('#image').change(validateFile)
	$('#mbUploadImage').dialog({
			autoOpen: false,
			width: 450,
			buttons: {	'Nahrát' : uploadImage,
						'Zrušit' : function() { $(this).dialog('close'); }
			}
	});
	$('#mbDeleteImage').dialog({
			autoOpen: false,
			width: 400,
			buttons: {	'Zrušit' : function() { $(this).dialog('close'); },
						'Smazat' : deleteImage
			}
	});
	$('#mbSetup').dialog({
			autoOpen: false,
			width: 420,
			buttons: {	'Uložit' : saveSetup,
						'Zrušit' : function() { $(this).dialog('close'); }
			}
	});
	$('#mbInfoEmail').dialog({
			autoOpen: false,
			width: 400,
			buttons: {	'Odeslat' : sendEmail,
						'Zrušit' : function() { $(this).dialog('close'); }
			}
	});
	$('#mbEmailReset').dialog({
			autoOpen: false,
			width: 400,
			buttons: {	'Zrušit' : function() { $(this).dialog('close'); },
						'Nastavit' : sendEmail
			}
	});
	$('.ui-dialog-buttonpane').find('button:last').addClass('lastButton');
	
	$('#forwardCheck').change(function(event){
		if ($(event.target).is(':checked')) {
			$('#forwardTo').removeAttr('disabled');
		} else {
			$('#forwardTo').attr('disabled', true);
		}
	});
	$('#copyCheck').change(function(event){
		if ($(event.target).is(':checked')) {
			$('#copyTo').removeAttr('disabled');
		} else {
			$('#copyTo').attr('disabled', true);
		}
	});

	$('#forwardCheck, #copyCheck').trigger('change');
});

/**
 * prohození dvou elementů
 */
jQuery.fn.swapWith = function(to) {
    return this.each(function() {
        var copyTo = $(to).clone(true);
        var copyFrom = $(this).clone(true);
        $(to).replaceWith(copyFrom);
        $(this).replaceWith(copyTo);
    });
};


/**
 * odešle formulář do skrytého iframu
 * po odeslání souboru okno zavře javascript v iframu
 */
function uploadImage()
{
	if (validateFile()) {
		$('#formAdminImageUpload').submit();
		$('#mbUploadImage .uploadForm').hide();
		$('#mbUploadImage .msgWait').show();
		$('.ui-dialog-buttonpane button').attr('disabled', 'disabled').addClass('ui-state-disabled');
	}
}

/**
 * kliknutí na ikonku pro nahrání obrázku
 * otevře dialog pro výběr souboru
 */
function uploadImageOnClick(event)
{
	id = $(event.target).parent().attr('name');
	$('#mbUploadImage .mbDescription').html($('#' + id + 'Info .mbDescription').html());
	$('#fileId').attr('value', id);
	if (id == 'imageOffice') {
		$('#officeId').attr('value', $(event.target).parent().parent().find('.officeId').html());
	}
	$('#image').parent().html($('#image').parent().html());
	$('#mbUploadImage .msgWait').hide();
	$('#mbUploadImage .uploadForm').show();
	$('.ui-dialog-buttonpane button').attr('disabled', '').removeClass('ui-state-disabled');
	$('#mbUploadImage .errors').html('');
	$('#mbUploadImage').dialog('open');
	return false;
}

/**
 * dokončení nahrávání obrázku poradce
 * zavře dialog a případně změní ikonku pro mazání obrázku
 */
function imageConsultantUploaded(filename)
{
	$('#mbUploadImage').dialog('close');
	$('#imageConsultant img').attr('src', '');
	$('#imageConsultant img').attr('src', $('#imageConsultantInfo .filename').html() + '?' + Math.random());
	$('#imageConsultant').removeClass('hidden');
	$('#icoImageDelete').attr('src', '/img/icoImageDelete.gif');
	$('#icoImageDelete').removeClass('disabled');
}

/**
 * dokončení nahrávání obrázku kanceláře
 * zavře dialog a případně přemístí box s otevírací dobou a změní ikonku pro mazání obrázku
 */
function imageOfficeUploaded(filename)
{
	$('#mbUploadImage').dialog('close');
	$('#office' + filename + ' .imageOffice img').attr('src', '');
	$('#office' + filename + ' .imageOffice img').attr('src', '/img/offices/' + filename + '.jpg?' + Math.random());
	$('#office' + filename + ' .imageOffice').removeClass('hidden');
	$('#office' + filename + ' .adminButtons .deleteImage img').attr('src', '/img/icoImageDelete.gif');
	$('#office' + filename + ' .adminButtons .deleteImage img').removeClass('disabled');
}

/**
 * validace typu vybraného souboru
 */
function validateFile()
{
	var file = $('#image').val();
	if (file == '') {
		showUploadError('Nevybrali jste žádný soubor.');
		return false;
	}
	var ext = file.substr(file.lastIndexOf('.')).toLowerCase();
	if (ext != '.gif' && ext != '.jpg' && ext != '.png' && ext != '.gif') {
		showUploadError('Vybraný typ souboru není podporován.');
		return false;
	}
	$('#mbUploadImage .errors').html('');
	return true;
}

/**
 * v dialogu pro výběr obrázku zobrazí chybovou hlášku
 */
function showUploadError(msg)
{
	$('#mbUploadImage .errors').html('<br>&nbsp;' + msg + '<br>');
	$('#mbUploadImage .msgWait').hide();
	$('#mbUploadImage .uploadForm').show();
	$('.ui-dialog-buttonpane button').attr('disabled', '').removeClass('ui-state-disabled');
}

/*
 * kliknutí na ikonku smazání obrázku
 * otevře potvrzovací dialog
 */
function deleteImageOnClick(event)
{
	if ($(event.target).hasClass('disabled')) {
		$(event.target).parent().blur();
		return false;
	}
	id = $(event.target).parent().attr('name');
	if (id == 'imageOffice') {
		officeId =  $(event.target).parent().parent().find('.officeId').html();
	}
	$('.ui-dialog-buttonpane button').attr('disabled', '').removeClass('ui-state-disabled');
	$('#mbDeleteImage').dialog('open');
	return false;
}

/**
 * smazání obrázku
 */
function deleteImage()
{
	if (typeof officeId == 'undefined') {
		officeId = '';
	}
	window.uploadFrame.location = '/' + $('#idConsultant').html() + '/delete/fileId/' + id + '/officeId/' + officeId;
}

/**
 * po dokončení mazání obrázku poradce
 * zavře dialog a případně změní ikonku
 */
function imageConsultantDeleted()
{
	$('#mbDeleteImage').dialog('close');
	$('#imageConsultant').addClass('hidden');
	$('#imageConsultant img').attr('src', '');
	$('#icoImageDelete').attr('src', '/img/icoImageDeleteDisabled.gif');
	$('#icoImageDelete').addClass('disabled');
}

/**
 * po dokončení mazání obrázku kanceláře
 * zavře dialog a případně změní ikonku
 */
function imageOfficeDeleted(idOffice)
{
	$('#mbDeleteImage').dialog('close');
	$('#office' + idOffice + ' .imageOffice').addClass('hidden');
	$('#office' + idOffice + ' .imageOffice img').attr('src', '');
	$('#office' + idOffice + ' .adminButtons .deleteImage img').attr('src', '/img/icoImageDeleteDisabled.gif');
	$('#office' + idOffice + ' .adminButtons .deleteImage img').addClass('disabled');
}

/**
 * odeslání nastavení poradce a přepnutí zobrazení na hlášku 'čekejte prosím'
 */
function saveSetup()
{
	$('#formAdminConsultantSetup').submit();
	$('#mbSetup .setupForm').hide();
	$('#mbSetup .msgWait').show();
	$('.ui-dialog-buttonpane button').attr('disabled', 'disabled').addClass('ui-state-disabled');
}

/**
 * kliknutí na ikonku nastavení
 * otevře dialog s formulářem pro nastavení zobrazení banneru a přeposílání
 */
function setupOnClick()
{
	$('#mbSetup .errors').html('');
	$('#mbSetup .msgWait').hide();
	$('#mbSetup .setupForm').show();
	$('.ui-dialog-buttonpane button').attr('disabled', '').removeClass('ui-state-disabled');
	$('#mbSetup').dialog('open');
	return false;
}

/**
 * kliknutí na ikonku nastavení ve výpise poradců
 * otevře dialog s formulářem pro nastavení zobrazení banneru a přeposílání
 * nastaví defaultní hodnoty formu podle dat poradce
 */
function setupOnClickList(event)
{
	var parentTr = $(event.target).parent().parent().parent();
	var email = parentTr.find('td.admin span.email').html();
	var emailHtml = '';
	if (email != '') {
		emailHtml = '<b>E-mail</b> (' + email + '):';
	}
	$('#formAdminConsultantSetup').attr('action', parentTr.find('td:first a').attr('href') + '/setup');
	$('#mbSetup .email').html(emailHtml);

	// nastavit přeposílací email
	var forwardTo = parentTr.find('td.admin span.forwardTo').html();
	if (forwardTo != '') {
		$('#forwardCheck').attr('checked', 'checked');
		$('#forwardTo').val(forwardTo);
	} else {
		$('#forwardCheck').attr('checked', false);
		$('#forwardTo').val('');
	}

	// nastavit email pro zasílání kopií
	var copyTo = parentTr.find('td.admin span.copyTo').html();
	if (copyTo != '') {
		$('#copyCheck').attr('checked', 'checked');
		$('#copyTo').val(copyTo);
	} else {
		$('#copyCheck').attr('checked', false);
		$('#copyTo').val('');
	}

	$('#forwardCheck, #copyCheck').trigger('change');

	// nastavit zobrazení banneru
	var showBanner = parentTr.find('td.admin span.showBanner').html();
	if (showBanner == '1') {
		$('#showBanner').attr('checked', 'checked');
	} else {
		$('#showBanner').attr('checked', false);
	}

	// checkboxy pouze pokud jsou povolené filtry
	var editFilters = parentTr.find('td.admin span.editFilters').html();
	if (editFilters == '1') {
		$('#copyCheck').attr('disabled', '');
		$('#forwardCheck').attr('disabled', '');
	} else {
		$('#copyCheck').attr('disabled', 'disabled');
		$('#forwardCheck').attr('disabled', 'disabled');	
	}

	// zobrazit popup okno
	$('#mbSetup .errors').html('');
	$('#mbSetup .msgWait').hide();
	$('#mbSetup .setupForm').show();
	$('.ui-dialog-buttonpane button').attr('disabled', '').removeClass('ui-state-disabled');
	$('#mbSetup').dialog('open');
	return false;
}

/**
 * zobrazí chybovou hlášku v dialogu nastavení
 */
function showSetupError(error)
{
	$('#mbSetup .errors').html(error);
	$('#mbSetup .msgWait').hide();
	$('#mbSetup .setupForm').show();
	$('.ui-dialog-buttonpane button').attr('disabled', '').removeClass('ui-state-disabled');
}

/**
 * po dokončení ukládání nastavení
 * změní defualtní hodnoty poradce ve výpise a zavře dialog
 */
function setupSaved(consultantNumber)
{
	if (typeof consultantNumber != 'undefined') {
		var parentTd = $('.officesList tr.consultant_' + consultantNumber + ' td.admin');
		
		if ($('#forwardCheck').is(':checked')) {
			parentTd.find('span.forwardTo').html($('#forwardTo').val());
		} else {
			parentTd.find('span.forwardTo').html('');	
		}

		if ($('#copyCheck').is(':checked')) {
			parentTd.find('span.copyTo').html($('#copyTo').val());
		} else {
			parentTd.find('span.copyTo').html('');
		}
		var showBanner = '0';
		if ($('#showBanner').is(':checked')) {
			showBanner = '1';
		}
		parentTd.find('span.showBanner').html(showBanner);
	}
	$('#mbSetup').dialog('close');
	$('#mbSetup .errors').html('');
	$('#mbSetup .msgWait').hide();
	$('#mbSetup .setupForm').show();
	$('.ui-dialog-buttonpane button').attr('disabled', '').removeClass('ui-state-disabled');
}

/**
 * přepne zobrazení banneru
 */
function setShowBanner(show)
{
	if (show) {
		$('#page').addClass('pageBanner');
		$('#pageRightContent .banner').removeClass('hidden');
	} else {
		$('#pageRightContent .banner').addClass('hidden');
		$('#page').removeClass('pageBanner');
	}
}

/**
 * kliknutí na ikonku informační email
 * otevře dialog pro zaslání přihlašovacích údajů na e-mail
 */
function infoEmailOnClick()
{
	$('#mbInfoEmail .errors').html('');
	$('.ui-dialog-buttonpane button').attr('disabled', '').removeClass('ui-state-disabled');
	$('#mbInfoEmail').dialog('open');
	return false;
}

/**
 * kliknutí na ikonku informační email ve výpise poradců
 * otevře dialog pro zaslání přihlašovacích údajů na e-mail
 */
function infoEmailOnClickList(event)
{
	var href = $(event.target).parent().parent().parent().find('td:first a').attr('href');
	$('.formAdminInfoEmail').attr('action', href + '/infoemail');
	$('#mbInfoEmail .errors').html('');
	$('.adminEmail').val('');
	$('#mbInfoEmail').dialog('open');
	return false;
}

/**
 * kliknutí na ikonku reset hesla
 * otevře dialog pro zaslání přihlašovacích údajů na e-mail
 */
function emailResetOnClick()
{
	$('#mbEmailReset .errors').html('');
	$('.ui-dialog-buttonpane button').attr('disabled', '').removeClass('ui-state-disabled');
	$('#mbEmailReset').dialog('open');
	return false;
}

/**
 * kliknutí na ikonku reset hesla ve výpise poradců
 * otevře dialog pro zaslání přihlašovacích údajů na e-mail
 */
function emailResetOnClickList(event)
{
	var parentTr = $(event.target).parent().parent().parent();
	var href = parentTr.find('td:first a').attr('href');
	var email = parentTr.find('td.admin span.secondaryEmail').html();
	$('.formAdminInfoEmail').attr('action', href + '/infoemail');
	$('.adminEmail').val(email);
	$('#mbEmailReset .errors').html('');
	$('#mbEmailReset').dialog('open');
	return false;
}

/**
 * odešle formulář - dojde k vygenerování hesla a zaslání e-mailu
 */
function sendEmail()
{
	$('.formAdminInfoEmail').submit();
}

/**
 * po odeslání e-mailu
 * zavře dialog a případně zruší červené označení, že informace ještě nebyli zaslány
 */
function emailSent(consultantNumber, secondaryEmail)
{
	if (typeof consultantNumber != 'undefined') {
		$('.officesList tr.consultant_' + consultantNumber).removeClass('infoNotSent');
		$('.officesList tr.consultant_' + consultantNumber + ' td.admin .infoEmail').hide();
		var parentTd = $('.officesList tr.consultant_' + consultantNumber + ' td.admin');
		parentTd.find('span.secondaryEmail').html(secondaryEmail);
		parentTd.find('.infoEmail').hide();
		parentTd.find('.emailReset').show();
	}
	$('.adminButtons .infoEmail img.icon').attr('src', '/img/icoEmailReset.png');
	$('.adminButtons .infoEmail').addClass('emailReset').removeClass('infoEmail');
	$('.consultant .infoNotSent').hide();
	$('#mbInfoEmail').dialog('close');
	$('#mbEmailReset').dialog('close');
}

/**
 * zobrazí chybovou hlášku v dialogu pro zaslání informačního emailu
 */
function showInfoEmailError(error)
{
	$('#mbInfoEmail .errors').html(error);
}