145 lines
4.1 KiB
JavaScript
145 lines
4.1 KiB
JavaScript
|
jQuery(function ($) {
|
||
|
var contact = {
|
||
|
message: null,
|
||
|
init: function () {
|
||
|
$('a.contact').click(function (e) {
|
||
|
e.preventDefault();
|
||
|
|
||
|
// load the contact form using ajax
|
||
|
var act = $(this).attr('id');
|
||
|
var page = $('div.page').attr('id');
|
||
|
$.get("data/contact.php?act=edit&fid="+act+"", function(data){
|
||
|
// create a modal dialog with the data
|
||
|
$(data).modal({
|
||
|
closeHTML: "<a href='#' title='Закрыть' class='modal-close'>x</a>",
|
||
|
position: ["15%",],
|
||
|
overlayId: 'contact-overlay',
|
||
|
containerId: 'contact-container',
|
||
|
onOpen: contact.open,
|
||
|
onShow: contact.show,
|
||
|
onClose: contact.close
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
},
|
||
|
open: function (dialog) {
|
||
|
// dynamically determine height
|
||
|
var h = 480;
|
||
|
if ($('#contact-subject').length) {
|
||
|
h += 26;
|
||
|
}
|
||
|
if ($('#contact-cc').length) {
|
||
|
h += 22;
|
||
|
}
|
||
|
|
||
|
var title = $('#contact-container .contact-title').html();
|
||
|
$('#contact-container .contact-title').html('Открытие...');
|
||
|
dialog.overlay.fadeIn(200, function () {
|
||
|
dialog.container.fadeIn(200, function () {
|
||
|
dialog.data.fadeIn(200, function () {
|
||
|
$('#contact-container .contact-content').animate({
|
||
|
height: h
|
||
|
}, function () {
|
||
|
$('#contact-container .contact-title').html(title);
|
||
|
$('#contact-container form').fadeIn(200, function () {
|
||
|
$('#contact-container #contact-name').focus();
|
||
|
|
||
|
$('#contact-container .contact-cc').click(function () {
|
||
|
var cc = $('#contact-container #contact-cc');
|
||
|
cc.is(':checked') ? cc.attr('checked', '') : cc.attr('checked', 'checked');
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
},
|
||
|
show: function (dialog) {
|
||
|
$('#contact-container .contact-send').click(function (e) {
|
||
|
e.preventDefault();
|
||
|
// validate form
|
||
|
if (contact.validate()) {
|
||
|
var msg = $('#contact-container .contact-message');
|
||
|
msg.fadeOut(function () {
|
||
|
msg.removeClass('contact-error').empty();
|
||
|
});
|
||
|
$('#contact-container .contact-title').html('Обработка...');
|
||
|
$('#contact-container form').fadeOut(200);
|
||
|
$('#contact-container .contact-content').animate({
|
||
|
height: '80px'
|
||
|
}, function () {
|
||
|
$('#contact-container .contact-loading').fadeIn(200, function () {
|
||
|
$.ajax({
|
||
|
url: 'data/contact.php',
|
||
|
data: $('#contact-container form').serialize() + '&act=send',
|
||
|
type: 'GET',
|
||
|
cache: false,
|
||
|
dataType: 'html',
|
||
|
success: function (data) {
|
||
|
$('#contact-container .contact-loading').fadeOut(200, function () {
|
||
|
$('#contact-container .contact-title').html('Успешно ...');
|
||
|
msg.html(data).fadeIn(200);
|
||
|
});
|
||
|
},
|
||
|
error: contact.error
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
}
|
||
|
else {
|
||
|
if ($('#contact-container .contact-message:visible').length > 0) {
|
||
|
var msg = $('#contact-container .contact-message div');
|
||
|
msg.fadeOut(200, function () {
|
||
|
msg.empty();
|
||
|
contact.showError();
|
||
|
msg.fadeIn(200);
|
||
|
});
|
||
|
}
|
||
|
else {
|
||
|
$('#contact-container .contact-message').animate({
|
||
|
height: '30px'
|
||
|
}, contact.showError);
|
||
|
}
|
||
|
|
||
|
}
|
||
|
});
|
||
|
},
|
||
|
close: function (dialog) {
|
||
|
$('#contact-container .contact-message').fadeOut();
|
||
|
$('#contact-container .contact-title').html('Закрываю...');
|
||
|
$('#contact-container form').fadeOut(200);
|
||
|
$('#contact-container .contact-content').animate({
|
||
|
height: 40
|
||
|
}, function () {
|
||
|
dialog.data.fadeOut(200, function () {
|
||
|
dialog.container.fadeOut(200, function () {
|
||
|
dialog.overlay.fadeOut(200, function () {
|
||
|
$.modal.close();
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
});
|
||
|
},
|
||
|
error: function (xhr) {
|
||
|
alert(xhr.statusText);
|
||
|
},
|
||
|
validate: function () {
|
||
|
contact.message = '';
|
||
|
if (!$('#contact-container #contact-message').val()) {
|
||
|
contact.message += 'Введите сообщение.';
|
||
|
}
|
||
|
|
||
|
if (contact.message.length > 0) {
|
||
|
return false;
|
||
|
} else {
|
||
|
return true;
|
||
|
}
|
||
|
},
|
||
|
showError: function () {
|
||
|
$('#contact-container .contact-message').html($('<div class="contact-error"></div>').append(contact.message)).fadeIn(200);
|
||
|
}
|
||
|
};
|
||
|
|
||
|
contact.init();
|
||
|
|
||
|
});
|