window.addEvent('domready', function() {
	userHelper = {
		initUserAuthorization: function() {
			var uae = $('clk-enter');
			if(!uae) return false;
			// Initialize Main Box
			var userAuthorization = new MessageBox({width: 550, className: 'uauth'});
			userAuthorization.buttonsBox.setStyle('display', 'none');
			userAuthorization.buttons.btnClose.setStyle('top', 4);

			// Set Request
			userAuthorization.request = new Request.HTML({
				onRequest: function() {
					userAuthorization.ajax = true;
					userAuthorization.ajaxLoader.setStyle('display', 'block');
				},
				onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
					userAuthorization.ajax = false;
					userAuthorization.ajaxLoader.setStyle('display', 'none');
					userAuthorization.html.set('html', responseHTML).setStyle('display', 'block');

					userAuthorization.buttons.btnCancel.set('html', $lang.close);
					userAuthorization.setPosition();
				},
				onFailure: function(xhr) {
					userAuthorization.ajaxLoader.setStyle('display', 'none');
					userAuthorization.message.set('html', xhr).setStyle('display', 'block');
				}
			});

			var authorizationHelper = {
				showForm: function(e) {
					// Set Title
					userAuthorization.title.set('html', $lang.entryPoint);
					// Show Form
					userAuthorization.show();
					// Send Request
					userAuthorization.request.setOptions({url: this.getProperty('href')});
					userAuthorization.request.get({'tmpl': 'html'});
					// Stop Event
					e.stop();
				}
			};

			uae.addEvent('click', authorizationHelper.showForm.bind(uae));
		},
		initUserRegistration: function() {
			var urn = $('registration');
			// Initialize Main Box
			var userRegistration = new MessageBox({width: 434, className: 'ureg'});

			userRegistration.buttons.btnClose.setStyle('top', 4);
			userRegistration.buttons.btnCancel.set('html', $lang.send);

			if(!urn) return false;

			var sendForm = function() {
				var frm = $('josformr');
				var checkForm = {
					username: $('rfname').getProperty('value'),
					login: $('rfusername').getProperty('value'),
					email: $('rfemail').getProperty('value'),
					rfpassword: $('rfpassword').getProperty('value'),
					rfpassword2: $('rfpassword2').getProperty('value')
				};

				if(typeof frm == 'object') {
					qRegister.post(frm);
				}
			};
			//Needs to be in a submit event or the form handler.
			var qRegister = new Request.HTML({
				url: 'index.php',
				onRequest: function() {
					userRegistration.ajax = true;
					userRegistration.ajaxLoader1.setStyle('display', 'block');
				},
				onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
					userRegistration.ajax = false;
					userRegistration.ajaxLoader1.setStyle('display', 'none');

					var response = JSON.decode(responseHTML);
					if(response.code == 1) {
						userRegistration.html.set('html', response.message);
						userRegistration.setPosition();
						userRegistration.buttons.btnCancel.removeEvent('click', sendForm);
						userRegistration.buttons.btnCancel.addEvent('click', userRegistration.hideEventId);
						userRegistration.buttons.btnCancel.set('html', $lang.close);
						userRegistration.buttons.btnCancelM.set('class', 'btn-cancel');
					} else {
						alert(response.message);
					}
				}
			});

			// if close form
			userRegistration.onHide = function() {
				userRegistration.buttons.btnCancel.removeEvent('click', sendForm);
				userRegistration.buttons.btnCancel.addEvent('click', userRegistration.hideEventId);
				userRegistration.buttons.btnCancel.set('html', $lang.close);
				userRegistration.buttons.btnCancelM.set('class', 'btn-cancel');
			};

			// Set Request
			userRegistration.request = new Request.HTML({
				onRequest: function() {
					userRegistration.ajax = true;
					userRegistration.ajaxLoader.setStyle('display', 'block');
				},
				onSuccess: function(responseTree, responseElements, responseHTML, responseJavaScript) {
					userRegistration.ajax = false;
					userRegistration.ajaxLoader.setStyle('display', 'none');
					userRegistration.html.set('html', responseHTML).setStyle('display', 'block');

					userRegistration.buttons.btnCancel.removeEvent('click', userRegistration.hideEventId);
					userRegistration.buttons.btnCancel.addEvent('click', sendForm);

					var getSecurityCode = $('scode');
					var newSrc = $('seccodeimg').getProperty('src');
					if(getSecurityCode) {
						getSecurityCode.addEvent('click', function(e){
							$('seccodeimg').setProperty('src', newSrc + '&' + Math.random());
							e.stop();
						});
					}
					///wedding/security/
					userRegistration.buttons.btnCancel.set('html', $lang.send);
					userRegistration.buttons.btnCancelM.set('class', 'btn-ok');
					userRegistration.setPosition();
				},
				onFailure: function(xhr) {
					userRegistration.ajaxLoader.setStyle('display', 'none');
					userRegistration.message.set('html', xhr).setStyle('display', 'block');
				}
			});

			var regHelper = {
				showForm: function(e) {
					// Set Title
					userRegistration.title.set('html', $lang.registration);
					// Show Form
					userRegistration.show();
					// Send Request
					userRegistration.request.setOptions({url: this.getProperty('href')});
					userRegistration.request.get({'tmpl': 'html'});
					// Stop Event
					e.stop();
				}
			};

			urn.addEvent('click', regHelper.showForm.bind(urn));
		}
	}

	userHelper.initUserAuthorization();
	userHelper.initUserRegistration();
});
