$(document).ready( function() {
$('.lnk_register').click( function(e) {
e.preventDefault();
// $.get(DIR_STATIC_SKIN+'/modal/register.html', function(data) {
$.modal.close();
$('
').modal({close:false});
$.get(DIR_WEB_ROOT+'/registration/', function(data) {
$.modal.close();
$(data).modal({
opacity: 25,
onOpen: register.open,
onShow: register.show
});
});
});
// preload images for modal window
var img = [ 'modal-lt.png', 'modal-rt.png',
'modal-lb.png', 'modal-rb.png',
'modal-l.png', 'modal-r.png',
'modal-t.png', 'modal-b.png',
'modal-lb.png'];
$(img).each(function () {
var i = new Image();
i.src = DIR_STATIC_SKIN+'/images/modal/' + this;
});
});
var register = {
fields: [ {name: 'login', type: 'text', req: true},
{name: 'mail', type: 'email', req: true},
{name: 'password', type: 'text', req: true},
{name: 'password_confirm', type: 'text', req: true},
{name: 'captcha', type: 'captcha', req: true} ],
messages: {'empty': 'Поле обязательно для заполнения',
'email': 'Некорректный адрес электронной почты!',
'captcha': 'вы робот?!'
},
open: function(dialog) { // It need to correct height and position of modal window
dialog.overlay.show();
dialog.container.show();
dialog.data.show();
register.resetHeight();
},
resetHeight: function() {
$('.simplemodal-container').height( $('.simplemodal-data').height());
$.modal.impl.setPosition();
},
show: function() {
$('#simplemodal-container .error-ico').click(function(e) {
e.preventDefault();
fieldset = $(this).parent().parent();
if ( !$('.error_msg', fieldset).html() ) {
fieldset.append('');
$('.error_msg', fieldset).html($(this).attr('rel'));
} else {
$('.error_msg', fieldset).remove();
}
});
},
validate: function() {
b = true;
$('#simplemodal-container .error_msg').remove();
for ( i in register.fields) {
f = register.fields[i];
field = $('#simplemodal-container form input[name="'+f.name+'"]');
register.clearErrors(field);
if (f.req) { // if field is reqired - check
if ( (field.val()) && (f.type=='email') ) { // if field not empty and have should be email - check
if ( !validateEmail( field.val() ) ) { // if not check not passed put error
register.fieldError(field, 'email');
b = false;
}
} else if ( !field.val() ) { // if field required and empty put empty error
if ( f.type=='captcha') {
register.fieldError(field, 'captcha');
} else {
register.fieldError(field, 'empty');
}
b = false;
}
}
else { // if field is not required but have email type and have value - check for email type
if ( (field.val()) && (f.type == 'email') ) {
if ( !validateEmail( field.val() ) ) { // if check is failed put error
register.fieldError(field, 'email');
b = false;
}
}
}
}
return b;
},
fieldError: function(field, type) {
field_container = field.parent().parent().parent();
if ( !field_container.hasClass('error') ) {
field_container.addClass('error');
l = $('#simplemodal-container form label[for="'+ field.attr('name') +'"] .error-ico')
l.show().attr('rel', l.attr('rel') + register.messages[type]+'
');
}
},
clearErrors: function(field) {
field.parent().parent().parent().removeClass('error');
$('#simplemodal-container form label[for="'+ field.attr('name') +'"] .error-ico').hide().attr('rel','');
},
error: function() {
}
}