
oRegForm = {
	aMonth: ['', 'Январь','Февраль','Март','Апрель','Май','Июнь','Июль','Август','Сентябрь','Октябрь','Ноябрь','Декабрь'],
	tr: function(td1, td2, td3){
		return '<tr><td class="left">'+td1+'</td><td>'+td2+'</td></td><td class="last">'+td3+'</td></tr>' 
	},
	tr2: function(td1, td2){
		return '<tr><td>'+td1+'</td><td>'+td2+'</td>' 
	},
	input: function(name){ return '<input type="text" id="'+name+'" name="'+name+'"class="text"/>' },
	pause: function(){return '<tr><td class="pause" colspan="3"><tr>'},
	date: function(){
		var s='<select id="reg_b_day"><option value="0">День</option>';
		for(var i=1; i<32; i++) s+='<option style="color:black" value="'+i+'">'+i+'</option>';
		s += '</select> <select id="reg_b_month"><option value="0">Месяц</option>';
		for(i=1; i<13; i++) s+= '<option style="color:black" value="'+i+'">'+this.aMonth[i]+'</option>';
		s += '</select> <select id="reg_b_year"><option value="0" stule="color:gray">Год</option>';
		for(i=1997; i>1940; i--) s+= '<option style="color:black" value="'+i+'">'+i+'</option>';
		s += '</select>';
		return s;
	},
	radio: function(name){
		return '<input type="radio" id="'+name+'" name="'+name+'" value="1" class="radio"/> Да &nbsp;&nbsp;&nbsp; <input type="radio" name="'+name+'" value="0"/ class="radio" checked="1"> Нет';
	},
	form: function(){
		var t = this;
		return '<table><tr>' + t.tr('Имя (ник):',t.input('reg_name'),'*')
		+ t.tr('Адрес e-mail:',t.input('reg_email'),'*')
		+ t.pause()
		+ t.tr('Пароль:',t.input('reg_pwd'),'*')
		+ t.tr('Ещё раз:',t.input('reg_pwd2'),'*')
		+ t.pause()
		+ t.tr('Код с картинки:',t.input('reg_captcha'),'*')
		+ '<tr><td class="captcha" colspan="3"><img src="/ctrl.html?ctrl=captcha"/ class="captcha"><img src="/_img/register/reload.gif" class="reload" onclick="oRegister.captcha()"/></td></tr>'
		+ t.tr('ICQ номер:',t.input('reg_icq'),'')
		+ t.tr('Сайт:',t.input('reg_site'),'')
		+ t.tr('Откуда:',t.input('reg_city'),'')
		+ t.tr('Автомобиль:',t.input('reg_mark'),'')
		+ t.tr('Род занятий:',t.input('reg_role'),'')
		+ t.tr('Интересы:',t.input('reg_interes'),'')
		+ t.tr('День Рождения:', t.date(), '')
		+ '<table><table>'
		+ t.tr2('Всегда показывать мой адрес email:',t.radio('reg_showemail'))
		+ t.tr2('Скрывать мое пребывание на форуме:',t.radio('reg_invisible'))
		+ '<tr><td colspan="2" class="submit"><input type="button" class="submit" onclick="oRegister.submit()" value="зарегистрироваться"></td></tr>'
		+'</table>';
	},
	html: function(){
		return '<div class="regblock"><div class="regtop"><img src="/_img/register/close.gif" onclick="oRegister.hide()"/>Регистрация</div><div class="body">'+this.form()+'</div><div class="bottom"></div></div>'
	}
}

oRegister = {
	show: function(){ $('div.general').block(); },
	hide: function(){ $('div.general').unblock(); },
	error: function(s){ this.ok = false; alert(s); },
	req: function(s){ this.error(s + ' — поле, обязательное для заполнения'); },
	is_email: function(email){
		var re = /^(?:[-a-z\d\+\*\/\?!{}`~_%&'=^$#]+(?:\.[-a-z\d\+\*\/\?!{}`~_%&'=^$#]+)*)@(?:[-a-z\d_]+\.){1,60}[a-z]{2,6}$/i;
		return re.test(email);
	},
	submit: function(){
		var hData = {}; var t = this;
		$('.regblock input.text, .regblock select').each(function(i){ hData[this.id] = this.value });
		hData.show_email = $('#reg_showemail')[0].checked ? 1 : 0;
		hData.invisible = $('#reg_invisible')[0].checked ? 1 : 0;
		t.ok = true;
		if(hData.reg_name=='') t.req('Имя (ник)'); else
			if(hData.reg_email=='') t.req('Электронная почта'); else
				if(!t.is_email(hData.reg_email)) t.error('Некорректрый адрес email'); else
				if(hData.reg_pwd=='') t.req('Пароль'); else
					if(hData.reg_captcha=='') t.req('Код с картинки'); else
						if(hData.reg_pwd != hData.reg_pwd2) t.error('Введенные пароли не совпадают');
		if(t.ok){
			$('.regblock input.submit')[0].disabled = true;
			$.post('/registration/register.html', hData, function(data){
				$('.regblock input.submit')[0].disabled = false;
				if(data=='ok') reloadPage(); else
					if(data=='email'){
						 alert('Пользователь с таким адресом электронной почты уже зарегистрирован');
						 oRegister.captcha();
					} else
						if(data=='captcha'){
							alert('Вы неправильно ввели код с картинки. Мы не считаем, что вы робот. Просто введите код еще раз');
							oRegister.captcha();
						} else alert('При регистрации произошла непонятная ошибка');
			});
		}
	},
	captcha: function(){
		$('.regblock img.captcha')[0].src='/ctrl.html?ctrl=captcha&rnd='+Math.round(10000*Math.random());
		$('#reg_captcha').val('');
	}
}

$.blockUI.defaults = {
    // message displayed when blocking (use null for no message) 
    message: oRegForm.html(),
     
    // styles for the message when blocking; if you wish to disable 
    // these and use an external stylesheet then do this in your code: 
    // $.blockUI.defaults.css = {}; 
    css: {  
        padding:        0, 
        margin:         0, 
        width:          '428px',  
        top:            '2%',
        left:           '35%'
    }, 
    overlayCSS:  { backgroundColor:'#000', opacity: '0.6' }, 
     
    // z-index for the blocking overlay 
    baseZ: 1000, 
     
    // set these to true to have the message automatically centered 
//    centerX: true, // <-- only effects element blocking (page block controlled via css above) 
//    centerY: true, 
     
    // allow body element to be stetched in ie6; this makes blocking look better 
    // on "short" pages.  disable if you wish to prevent changes to the body height 
    allowBodyStretch: true, 
     
    // be default blockUI will supress tab navigation from leaving blocking content; 
    constrainTabKey: true, 
     
    // fadeOut time in millis; set to 0 to disable fadeout on unblock 
    fadeOut:  400, 
     
    // suppresses the use of overlay styles on FF/Linux (due to significant performance issues with opacity) 
    applyPlatformOpacityRules: true 
};


