var cUserer = Class.create(Observable, {
	initialize: function($super) {
		$super();
		this.user_id = -1;
		this.user_name = '';
		this.user_nem_style = '';
		this.user_pic = '';
		this.fullfilldate = '';
		//this.friends = '';
		this.settings = new Array();
		this.dimension11 = 0;
		this.opinions = new Array();
		this.kedvenc_ppl = new Array();
		this.kedvenc_movie = new Array();
		this.max_kedvenc = 10;
		this.max_display = 6;
		this.listak = new Array();
		this.latott_listak = new Array();
		this.assessorListak = new Array();
		this.attends = new Array();
		this.likeCreatives = [];
		this.messages = new Array();
		this.out_messages = new Array();
		this.checkServerSession();
		this.periodicSessionCheck();
		this.openedSubMenus = new Array();
		this.question_result = null;
		this.status = "";
		this.firstLoad = true;

		this.on('login', this.renderUserSettings.bind(this));
		this.on('logout', this.renderUserSettings.bind(this));
	},
	// hatha a szerver szerint be van jelentkezve
	// csak esetleg nyomott egy refresht a bongeszoben
	checkServerSession: function() {
		var keres = new Ajax.Request('userActions.php?action=isloggedin', {
		method:'get',
			onSuccess: function(transport){
				var ret = transport.responseText.evalJSON();
				userer.parseSessionCheck(ret, false);
			}
		});
	},
	periodicSessionCheck: function() {
		window.setInterval("userer.checkServerSession()", 120000);
	},
	parseSessionCheck: function(ret, isUserAction) {
		var vissz = false;
		var valtozas = false;
		if (ret.user_id != this.user_id) {
			valtozas = true;
			if (ret.user_id > 0) {
				this.user_id = ret.user_id;
				this.user_pic = ret.user_pic;
				this.user_nem_style = ret.user_nem_style;
				this.fullfilldate = ret.fullfilldate;
				//this.friends = ret.friends;
				this.settings = ret.settings;
				this.dimension11 = ret.dimension11;
				this.kedvenc_ppl = ret.kedvenc_ppl;
				this.listak = ret.listak;
				this.latott_listak = ret.latott_listak;
				this.assessorListak = ret.assessorListak;
				var i = 0;
				for (i=0; i<this.kedvenc_ppl.length; i++) {
					var tip = this.kedvenc_ppl[i];
					tip.url = 'ppl=' + tip.azon;
					tip.template = 'template_assessor_tooltip'
					tooltipper.addTartalom(tip);
					this.kedvenc_ppl[i].tooltip_url = tip.url;
					this.kedvenc_ppl[i].onpopup_url = '#datasheet-ppl-'+tip.azon+'';
					this.kedvenc_ppl[i].onclick_details = "universe.getViewByName('datasheet').showDataSheet('ppl', " + tip.azon + ");";
				}
				this.kedvenc_movie = ret.kedvenc_movie;
				for (i=0; i<this.kedvenc_movie.length; i++) {
					var tip = this.kedvenc_movie[i];
					tip.url = 'movie=' + tip.azon;
					tip.template = 'template_movie_tooltip'
					tooltipper.addTartalom(tip);
					this.kedvenc_movie[i].tooltip_url = tip.url;
					this.kedvenc_movie[i].onpopup_url = '#datasheet-movie-'+tip.azon+'';
					this.kedvenc_movie[i].onclick_details = "universe.getViewByName('datasheet').showDataSheet('movie', " + tip.azon + ");";
				}
				this.opinions = ret.opinions;
				this.attends = ret.attends;
				this.likeCreatives = ret.likeCreatives;
				this.status = ret.status;
				this.messages = ret.messages;
				this.out_messages = ret.out_messages;
				this.refreshHistoryWindow('movie');
				this.refreshHistoryWindow('ppl');
				universe.activeView().resetAllElement();
				//universe.getViewByName('valaszto').onParamsChangeHidden(null);
				vissz = true;
			} else {
				this.user_id = 0;
				this.fullfilldate = '';
				//this.friends = '';
				this.settings = new Array();
				this.dimension11 = 0;
				this.opinions = new Array();
				this.listak = new Array();
				this.latott_listak = new Array();
				var banlista = new Object();
				banlista.banlist = 1;
				banlista.items = ret.banned_movies;
				banlista.name = 'banlist';
				this.listak.push(banlista);
				//alert(this.listak[0].items.length);

				this.assessorListak = ret.assessorListak;
				this.attends = new Array();
				this.likeCreatives = [];
				this.status = "";
				this.messages = new Array();
				this.out_messages = new Array();
				//this.refreshMessagesWindow();
				//this.refreshOutMessagesWindow();
				this.refreshHistoryWindow('movie');
				this.refreshHistoryWindow('ppl');
				universe.activeView().resetAllElement();
				if (isUserAction) {
					//universe.activateViewByName('valaszto');
					menuer.changeIt('kategoria');
					//universe.activateViewByName('valaszto');
				}
			}
		} else if (isUserAction) { // a hibas bejelentkezes, csak ki kell szurni az automatikus csekkolast
			alert('Hibás felhasználónév/jelszó!');
		}
		this.user_name = ret.user_name;
		//this.listak = ret.listak;
		//this.assessorListak = ret.assessorListak;
		if (valtozas) {
			this.drawUserBox();
			this.drawUserToolbar();
			this.drawAttends();
			if (!this.isGuest()) {
				this.refreshAssessorEditLists();
				/*if (universe) {
					universe.getViewByName('conversation').renderQuestion();
				}*/
				if (isUserAction) this.fireEvent('login', this.user_id, this.user_name);
			} else {
				if (isUserAction) this.fireEvent('logout', this.user_id, this.user_name);
			}
		}
		this.messages = ret.messages;
		this.out_messages = ret.out_messages;
		this.refreshMessagesWindow();
		this.refreshOutMessagesWindow();
		this.refreshEmberekMenu();

		// most toltjuk az oldalt, tehat ellenorizni kell a ?parametert
		if (this.firstLoad) {
			this.firstLoad = false;
			if (!menuer.checkOnloadShow()) {
				this.showWelcome();
			}
		} else {
			this.showWelcome();
		}
		return vissz;
	},
	parseSessionCheckWithEval: function(ret, isUserAction, evalni) {
		var vissz = this.parseSessionCheck(ret, isUserAction);
		if (vissz) {
			eval(evalni);
		}
	},
	drawUserToolbar: function() {
		var out = $('user_toolbar');
		var template = '';
		var adat = new Object();
		if (this.isGuest()) {
			var uu = '';
			if ($('user_name') != null) uu = $('user_name').value;
			if (uu != '') {
				adat.user_name = uu;
			} else {
				adat.user_name = languager.getText('username');
			}
			template = 'user_toolbar_guest';
		} else {
			template = 'user_toolbar_regged';
			adat.user_id = this.user_id;
			adat.user_name = this.user_name;
			adat.user_nem_style = this.user_nem_style;
			adat.user_pic = this.user_pic;
		}
		templater.render(out, template, adat, this.drawUserToolbarCallback.bind(this));
		//adat._MODIFIERS = myModifiers;
		//out.innerHTML = TrimPath.processDOMTemplate(template, adat);
	},
	drawUserToolbarCallback: function() {
		this.refreshMessagesWindow();
	},
	drawUserBox: function() {
		var out = $('userbox');
		var template = '';
		var adat = {};
		if (this.isGuest()) {
			var uu = '';
			if ($('user_name') != null) uu = $('user_name').value;
			if (uu != '') {
				adat.user_name = uu;
			} else {
				adat.user_name = languager.getText('username');
			}
			template = 'user_guest';
		} else {
			template = 'user_regged';
			adat.user_id = this.user_id;
			adat.user_name = this.user_name;
			adat.user_nem_style = this.user_nem_style;
			adat.user_pic = this.user_pic;
		}
		templater.render(out, template, adat, this.drawUserBoxCallback.bind(this));
		//adat._MODIFIERS = myModifiers;
		//out.innerHTML = TrimPath.processDOMTemplate(template, adat);
	},
	drawUserBoxCallback: function() {
		if (!this.isGuest())
			this.showLists();
	},
	isGuest: function() {
		return (!(this.user_id>0));
	},
	addPPL: function(elem) {
		this.addElem(elem, this.kedvenc_ppl);
		this.refreshHistoryWindow('ppl');
		this.updateHistoryToServer(elem, 'ppl');
	},
	addMovie: function(elem) {
		this.addElem(elem, this.kedvenc_movie);
		this.refreshHistoryWindow('movie');
		this.updateHistoryToServer(elem, 'movie');
	},
	addElem: function(_elem, tomb) {
		var elem = Object.clone(_elem);
		for (i=0; i<tomb.length; i++) {
			if (elem.azon == tomb[i].azon) {
				tomb.splice(i, 1);
				break;
			}
		}
		elem.onclick_details = "openNewLayer('" + elem.onpopup_url + "')";
		tomb.push(elem);
		if (tomb.length > this.max_kedvenc) tomb.splice(0, 1);
	},
	updateHistoryToServer: function(elem, melyik) {
		if (this.isGuest()) return;
		var st = '';
		var qst = 'userActions.php?action=addhistory';
		var tepp = null;
		if (melyik == 'ppl') {
			tepp = this.kedvenc_ppl;
			qst += 'ppl&ppls=';
		} else {
			tepp = this.kedvenc_movie;
			qst += 'movie&movies=';
		}
		for (uz=0; uz<tepp.length; uz++) {
			st += tepp[uz].azon+',';
		}
		//alert(st);
		qst += st.substring(0, st.length-1);

		// ajax
		var keres = new Ajax.Request(qst, {
		method:'get',
			onSuccess: function(transport){
			}
		});
	},
	refreshHistoryWindow: function(melyik) {
		var out = null;
		var temp = null;
		var ret = [];
		var template = '';
		var temp_start = 0;
		var temp_end = 0;
		if (melyik == 'movie') {
			out = $('movie_history');
			template = 'template_movie_history';
			temp = this.kedvenc_movie;
			temp_start = temp.length-1;
			temp_end = Math.max(temp_start-this.max_display+1, 0);
		} else {
			out = $('ppl_history');
			template = 'template_ppl_history';
			temp = this.kedvenc_ppl;
			temp_start = temp.length-1;
			temp_end = Math.max(temp_start-this.max_display+1, 0);
		}
		// remove listeners
		var olds = out.select("a");
		for (var i=0; i<olds.length; i++) {
			olds[i].stopObserving();
		}
			
		// ha nincs elem, akkor az ablakot sem rakjuk ki
		if (temp.length == 0) {
			if (melyik == 'movie') {
				$('movie_history_box').hide();
			} else {
				$('ppl_history_box').hide();
			}
			return;
		} else {
			if (melyik == 'movie') {
				$('movie_history_box').show();
			} else {
				$('ppl_history_box').show();
			}
		}
		for (i=temp_start; i>=temp_end; i--) {
			ret.push(temp[i]);
		}
		var adat = {
			elemek: ret
		};
		templater.render(out, template, adat, this.afterRefreshHistoryWindow.bind(this, melyik));
	},
	afterRefreshHistoryWindow: function(melyik) {
		var out;
		if (melyik == 'movie') {
			out = $('movie_history');
		} else {
			out = $('ppl_history');
		}
		var items = out.select("a");
		universe.bindEntities(items);
	},
	refreshMessagesWindow: function() {
		var out = $('tartalom_messages_list');
		var template = 'template_messages_list';

		var szuro_addr = '';
		if ($('messages_addressee_filter').value != '' && $('messages_addressee_filter').value != languager.getText("messages_inbox_filter")) {
			szuro_addr = $('messages_addressee_filter').value;
		}
		var szuro_is_new = $('messages_type_filter').value;

		var van_uj = false;
		var i=0;
		var target = new Array();
		for (i=0; i<this.messages.length; i++) {
			if (this.messages[i].is_new == 1) {
				van_uj = true;
			}
			if (szuro_addr != '' && this.messages[i].sender_usernm.indexOf(szuro_addr) != 0) continue;
			if (szuro_is_new == 'read' && this.messages[i].is_new == 1) continue;
			if (szuro_is_new == 'unread' && this.messages[i].is_new == 0) continue;

			target.push(this.messages[i]);
		}
		//alert('frissitunk');

		if (van_uj) {
			this.hasNewMessage();
		} else {
			this.hasntNewMessage();
		}
		var adat = new Object();
		adat.elemek = target;
		templater.render(out, template, adat);
		//adat._MODIFIERS = myModifiers;
		//out.innerHTML = TrimPath.processDOMTemplate(template, adat);
		//alert('kesz');
	},
	refreshOutMessagesWindow: function() {
		var out = $('tartalom_out_messages_list');
		var template = 'template_out_messages_list';

		var szuro_addr = '';
		if ($('out_messages_addressee_filter').value != '' && $('out_messages_addressee_filter').value != languager.getText("messages_outbox_filter")) {
			szuro_addr = $('out_messages_addressee_filter').value;
		}

		var target = new Array();
		for (i=0; i<this.out_messages.length; i++) {
			if (szuro_addr != '' && this.out_messages[i].receiver_usernm.indexOf(szuro_addr) != 0) continue;

			target.push(this.out_messages[i]);
		}

		var adat = new Object();
		adat.elemek = target;
		templater.render(out, template, adat);
		//adat._MODIFIERS = myModifiers;
		//out.innerHTML = TrimPath.processDOMTemplate(template, adat);
	},
	hasNewMessage: function() {
		//$('messages_boritek').hide();
		if ($('messages_boritek') != null) {
			$('messages_boritek').src = 'images/email_olvasatlan.gif';
		}
	},
	hasntNewMessage: function() {
		if ($('messages_boritek') != null) {
			$('messages_boritek').src = 'images/email_olvasott.gif';
		}
		//$('messages_boritek').show();
	},
	showMessage: function(_id) {
		var out = $('tartalom_messages_text');
		var template = 'template_messages_text';
		var i=-1;
		var _i = -1
		for (i=0; i<this.messages.length; i++) {
			if (this.messages[i].id == _id) {
				_i = i;
				break;
			}
		}
		if (_i > -1) {
			if (this.messages[_i].is_new == 1) {
				this.messages[_i].is_new = 0;
				this.setMessageRead(_id);
			}
		} else {
			out.innerHTML = "";
			return;
		}

		var adat = new Object();
		adat.message = this.messages[_i];
		adat.message.message_html = adat.message.message_html.replace(/&nbsp;/g, '&nbsp; ')
		templater.render(out, template, adat);
		//adat._MODIFIERS = myModifiers;
		//out.innerHTML = TrimPath.processDOMTemplate(template, adat);
	},
	showFirstMessage: function() {
		var _id = 0;
		for (i=0; i<this.messages.length; i++) {
			if (this.messages[i].is_new == 1) {
				_id = this.messages[i].id;
				break;
			}
		}
		if (_id == 0) {
			for (i=0; i<this.messages.length; i++) {
				_id = this.messages[i].id;
				break;
			}
		}
		if (_id > 0) {
			this.showMessage(_id);
		}
	},
	showFirstOutMessage: function() {
		var _id = 0;
		for (i=0; i<this.out_messages.length; i++) {
			if (this.out_messages[i].is_new == 1) {
				_id = this.out_messages[i].id;
				break;
			}
		}
		if (_id == 0) {
			for (i=0; i<this.out_messages.length; i++) {
				_id = this.out_messages[i].id;
				break;
			}
		}
		if (_id > 0) {
			this.showOutMessage(_id);
		}
	},
	setMessageRead: function(_id) {
		for (i=0; i<this.messages.length; i++) {
			if (this.messages[i].id == _id) {
				this.messages[i].is_new = 0;
				break;
			}
		}
		var keres = new Ajax.Request('userActions.php?action=setimread&message='+_id, {
		method:'get',
			onSuccess: function(transport){
				//var ret = transport.responseText.evalJSON();
				//userer.parseSessionCheck(ret, true);
				userer.refreshMessagesWindow();
			}
		});
	},
	setMessageUnread: function(_id) {
		var i=0;
		for (i=0; i<this.messages.length; i++) {
			if (this.messages[i].id == _id) {
				this.messages[i].is_new = 1;
				break;
			}
		}
		var keres = new Ajax.Request('userActions.php?action=setimunread&message='+_id, {
		method:'get',
			onSuccess: function(transport){
				//var ret = transport.responseText.evalJSON();
				//userer.parseSessionCheck(ret, true);
				userer.refreshMessagesWindow();
			}
		});
	},
	deleteMessage: function(_id, needconfirm) {
		if (needconfirm == null && !confirm(languager.getText('confirm_message_delete'))) return;
		var i=0;
		for (i=0; i<this.messages.length; i++) {
			if (this.messages[i].id == _id) {
				this.messages.splice(i, 1);
				//alert(i);
				break;
			}
		}
		userer.refreshMessagesWindow();
		userer.showMessage(_id);
		var keres = new Ajax.Request('userActions.php?action=deleteim&message='+_id, {
		method:'get',
			onSuccess: function(transport){
				universe.userAlert('Üzenet törölve.', 0, null, 'success');
				//var ret = transport.responseText.evalJSON();
				//userer.parseSessionCheck(ret, true);
				//userer.refreshMessagesWindow();
			}
		});
	},
	deleteOutMessage: function(_id, needconfirm) {
		if (needconfirm == null && !confirm(languager.getText('confirm_message_delete'))) return;
		var i=0;
		for (i=0; i<this.out_messages.length; i++) {
			if (this.out_messages[i].id == _id) {
				this.out_messages.splice(i, 1);
				//alert(i);
				break;
			}
		}
		userer.refreshOutMessagesWindow();
		userer.showOutMessage(_id);
		var keres = new Ajax.Request('userActions.php?action=deleteim&message='+_id, {
		method:'get',
			onSuccess: function(transport){
				universe.userAlert('Üzenet törölve.', 0, null, 'success');
				//var ret = transport.responseText.evalJSON();
				//userer.parseSessionCheck(ret, true);
				//userer.refreshOutMessagesWindow();
			}
		});
	},
	deleteOutMessages: function(_idk) {
		var i=0;
		for (i=0; i<_idk.length; i++) {
			this.deleteOutMessage(_idk[i], true);
		}
	},
	deleteMessages: function(_idk) {
		var i=0;
		for (i=0; i<_idk.length; i++) {
			this.deleteMessage(_idk[i], true);
		}
	},
	selectAllMessage: function(hol, mire) {
		var cprefix = '';
		if (hol == 'out') {
			cprefix = 'out_message_check_';
		} else {
			cprefix = 'message_check_';
		}
		var jz=0;
		while ($(cprefix+jz) != null) {
			$(cprefix+jz).checked = mire;
			jz++;
		}
	},
	deleteSelectedMessages: function(hol) {
		if (!confirm(languager.getText('confirm_messages_delete'))) return;
		var cprefix = '';
		var iprefix = '';
		if (hol == 'out') {
			cprefix = 'out_message_check_';
			iprefix = 'out_message_index_';
		} else {
			cprefix = 'message_check_';
			iprefix = 'message_index_';
		}
		var jz=0;
		var indexek = new Array();
		while ($(cprefix+jz) != null) {
			if ($(cprefix+jz).checked) {
				indexek.push($(iprefix+jz).value);
			}
			jz++;
		}
		if (indexek.length > 0) {
			if (hol == 'out') {
				this.deleteOutMessages(indexek);
			} else {
				this.deleteMessages(indexek);
			}
		}
	},
	showOutMessage: function(_id) {
		var out = $('tartalom_out_messages_text');
		var template = 'template_out_messages_text';
		var i=0;
		var _i=-1;
		for (i=0; i<this.out_messages.length; i++) {
			if (this.out_messages[i].id == _id) {
				_i = i;
				break;
			}
		}

		if (_i == -1) {
			out.innerHTML = "";
			return;
		}

		var adat = new Object();
		adat.message = this.out_messages[_i];
		adat.message.message_html = adat.message.message_html.replace(/&nbsp;/g, '&nbsp; ');
		templater.render(out, template, adat);
		//adat._MODIFIERS = myModifiers;
		//out.innerHTML = TrimPath.processDOMTemplate(template, adat);
	},
	openMessageBox: function() {
		window.scrollTo(0, 0);
		if (this.isGuest()) {
			this.showLogin();
			return false;
		}
		menuer.showTartalom('messages');
		userer.showFirstMessage();
		return false;
	},
	openLikePpls: function() {
		window.scrollTo(0, 0);
		if (this.isGuest()) {
			this.showLogin();
			return false;
		}
		menuer.changeIt('ember');
		universe.activateViewByName('emberek');
		return false;
	},
	openUserSettings: function() {
		window.scrollTo(0, 0);
		if (this.isGuest()) {
			this.showLogin();
			return false;
		}
		this.showUserSettings();
		return false;
	},
	openPersonalDatas: function() {
		window.scrollTo(0, 0);
		if (this.isGuest()) {
			this.showLogin();
			return false;
		}
		userer.showPersonalDatas();
		return false;
	},
	openListsEdit: function() {
		window.scrollTo(0, 0);
		if (this.isGuest()) {
			this.showLogin();
			return false;
		}
		menuer.showTartalom('lista_edit');
		return false;
	},
	openAttention: function() {
		openNewWindow('felhivas.php');
		return false;
	},
	checkForEnter: function(e) {
		var keynum = 0;
		if(window.event) { // IE
			keynum = e.keyCode;
		} else if(e.which) { // Netscape/Firefox/Opera
			keynum = e.which;
		}
		if (keynum == 13) {
			return true;
		}
		return false;
	},
	checkForEsc: function(e) {
		var keynum = 0;
		if(window.event) { // IE
			keynum = e.keyCode;
		} else if(e.which) { // Netscape/Firefox/Opera
			keynum = e.which;
		}
		if (keynum == 27) {
			return true;
		}
		return false;
	},
	checkForInputFill: function(mit) {
		if (mit == 'welcome_login') {
			if ($('user_name_w').value != '' && $('user_name_w').value != languager.getText('login_username_inputvalue')
					&& $('user_pass_w').value != '' && $('user_pass_w').value != 'jelszó') {
				$('loginsubmit_w').disabled = false;
				return true;
			} else {
				$('loginsubmit_w').disabled = true;
				return false;
			}
		} else if (mit == 'login') {
			if ($('user_name_l').value != '' && $('user_name_l').value != languager.getText('login_username_inputvalue')
					&& $('user_pass_l').value != '' && $('user_pass_l').value != 'Jelszó') {
				$('loginsubmit_l').disabled = false;
				return true;
			} else {
				$('loginsubmit_l').disabled = true;
				return false;
			}
		}
	},
	doLogin: function(username, password, always_in) {
		// ajax
		var q = 'userActions.php?action=login&user_name='+username+'&password='+password;
		if (always_in) {
			q += '&always_in=1';
		}
		var keres = new Ajax.Request(q, {
		method:'get',
			onSuccess: function(transport){
				var ret = transport.responseText.evalJSON();
				userer.parseSessionCheck(ret, true);
				userer.resetLoginButtons();
			}
		});
		this.onLoginProcess();
	},
	doLoginWithEval: function(username, password, always_in, evalni) {
		// ajax
		var q = 'userActions.php?action=login&user_name='+username+'&password='+password;
		if (always_in) {
			q += '&always_in=1';
		}
		var keres = new Ajax.Request(q, {
		method:'get',
			onSuccess: function(transport){
				var ret = transport.responseText.evalJSON();
				userer.parseSessionCheckWithEval(ret, true, evalni);
				userer.resetLoginButtons();
			}
		});
		this.onLoginProcess();
	},
	onLoginProcess: function() {
		if ($('loginsubmit_l') != null) {
			$('loginsubmit_l').hide();
		}
		if ($('login_layer_loading') != null) {
			$('login_layer_loading').show();
		}
		if ($('loginsubmit_w') != null) {
			$('loginsubmit_w').hide();
		}
		if ($('welcome_layer_loading') != null) {
			$('welcome_layer_loading').show();
		}
	},
	resetLoginButtons: function() {
		if ($('login_layer_loading') != null) {
			$('login_layer_loading').hide();
		}
		if ($('loginsubmit_l') != null) {
			$('loginsubmit_l').show();
		}
		if ($('welcome_layer_loading') != null) {
			$('welcome_layer_loading').hide();
		}
		if ($('loginsubmit_w') != null) {
			$('loginsubmit_w').show();
		}
	},
	doLogout: function() {
		if (this.isGuest()) return;
		// ajax
		var keres = new Ajax.Request('userActions.php?action=logout', {
		method:'get',
			onSuccess: function(transport){
				var ret = transport.responseText.evalJSON();
				userer.parseSessionCheck(ret, false);
				userer.fireEvent('logout', 0, '');
				//if (universe.getViewByName('conversation')) universe.getViewByName('conversation').renderQuestion();
			}
		});
	},
	doRegistrationWithEval: function(username, password, password2, email, captcha, evalni) {
		$('reg_submit_r').disabled = true;
		if (!this.checkPasswordEqual(password, password2)) {
			alert(languager.getText('invalid_password'));
			return;
		}
		if (!$('feltetelek_r').checked) {
			alert(languager.getText('policy_agree'));
			return;
		}
		// ajax
		var keres = new Ajax.Request('userActions.php?action=registration&user_name='+username+'&email='+email+'&captcha='+captcha+'&password='+password, {
		method:'get',
			onSuccess: function(transport){
				var ret = transport.responseText.evalJSON();
				$('reg_submit_r').disabled = false;
				if (ret.captcha != null) { // vagyis hiba volt, es uj kepet kaptunk csak

					userer.putCaptcha(ret.captcha);
					alert(ret.error);
					return;
				}
				var ret = transport.responseText.evalJSON();
				userer.parseSessionCheckWithEval(ret, true, evalni);
			}
		});
	},
	putCaptcha: function(str) {
		$('captcha_img').src = str;
	},
	requestCaptcha: function() {
		// ajax
		var keres = new Ajax.Request('userActions.php?action=registration', {
		method:'get',
			onSuccess: function(transport){
				var ret = transport.responseText.evalJSON();
				if (ret.captcha != null) {
					userer.putCaptcha(ret.captcha);
				}
			}
		});
	},
	makeOpinionExt: function(opinion, assess, cb, scope) {
		if (this.isGuest() || this.hasOpinion(assess)) return;
		// ajax
		var keres = new Ajax.Request('userActions.php?action=opinion&assess='+assess+'&opinion='+opinion, {
			method:'get',
			onSuccess: (function(transport){
				var ret = transport.responseText.evalJSON();
				this.opinions.push(ret);
				if (cb) cb.call(scope || window, ret);
			}).bind(this)
		});
	},
	makeOpinion: function(opinion, assess) {
		if (this.isGuest() || this.hasOpinion(assess)) return;
		// ajax
		var keres = new Ajax.Request('userActions.php?action=opinion&assess='+assess+'&opinion='+opinion, {
		method:'get',
			onSuccess: function(transport){
				var ret = transport.responseText.evalJSON();
				userer.parseOpinion(ret);
			}
		});
	},
	parseOpinion: function(ret) {
		// azert az egyessel kezdjuk, mert csak onnantol kezdve lehetnek ajanlasok
		// es mivel mindegyik tovabbdobja a hivast a kovetkezonek, csak ott kell meghivni
		this.opinions.push(ret);
		universe.activeView().updateOpinion(ret.assess_id, ret.opinion);
	},
	hasOpinion: function(id) {
		if (this.getMyOpinion(id) != null) {
			return true;
		}
		return false;
	},
	getMyOpinion: function(id) {
		for (i=0; i<this.opinions.length; i++) {
			if (id == this.opinions[i].assess_id) {
				return this.opinions[i].opinion;
			}
		}
		return null;
	},
	makeAttend: function(id, attend) {
		if (this.isGuest()) {
			this.showLogin();
			return;
		}
		var current = this.getAttend(id);
		if (current) {
			if (attend == -1) {
				this.attends.splice(this.attends.indexOf(current), 1);
			}
			else {
				current.attend = attend;
			}
		} else if (attend != -1) {
			this.attends.push({
				assessor_id: id,
				attend: attend
			});
		}
		// ajax
		var keres = new Ajax.Request('userActions.php?action=attend&assessor_id='+id+'&attend='+attend, {
		method:'get',
			onSuccess: function(transport){
				var ret = transport.responseText.evalJSON();
				userer.parseAttend(ret);
			}
		});
	},
	hasAttend: function(id) {
		if (this.getMyAttend(id) != null) {
			return true;
		}
		return false;
	},
	parseAttend: function(ret) {
		this.attends = ret;
		this.drawAttends();
	},
	drawAttends: function() {
		if (universe.activeView().drawAttends) universe.activeView().drawAttends();
	},
	isAttend: function(id) {
		var attend = this.getAttend(id)
		return attend ? (attend.attend == 1) : null;
	},
	getAttend: function(id) {
		var i=0;
		for (i=0; i<this.attends.length; i++) {
			if (id == this.attends[i].assessor_id) {
				return this.attends[i];
			}
		}
		return null;
	},
	getMyAttend: function(id) {
		var attend = this.getAttend(id);
		return attend ? attend.attend : null;
	},
	markCreativeLike: function(id, like) {
		if (this.isGuest()) {
			this.showLogin();
			return;
		}
		// ajax
		if (like == -1) {
			this.deleteCreativeLike(id);
		}
		else {
			var current = this.getCreativeLike(id);
			if (current) {
				current.like = like;
			}
			else {
				this.likeCreatives.push({
					creative_id: id,
					like: like
				});
			}
		}
		var params = new Hash();
		params.set('creative', id);
		params.set('like', like);
		var keres = new Ajax.Request('userActions.php?action=markcreativelike', {
			method:'post',
			parameters: params,
			onSuccess: function(transport){
				var ret = transport.responseText.evalJSON();
				// ?
			}
		});
	},
	deleteCreativeLike: function(id) {
		var i=0;
		for (i=0; i<this.likeCreatives.length; i++) {
			if (id == this.likeCreatives[i].creative_id) {
				this.likeCreatives.splice(i, 1);
				break;
			}
		}
	},
	getCreativeLike: function(id) {
		var i=0;
		for (i=0; i<this.likeCreatives.length; i++) {
			if (id == this.likeCreatives[i].creative_id) {
				return this.likeCreatives[i];
			}
		}
		return null;
	},
	isCreativeLike: function(id) {
		var like = this.getCreativeLike(id)
		return like ? (like.like == 1) : null;
	},
	showWelcome: function() {
		return;
		// welcome turned off
		var volt = readCookie('welcome');
		if (volt != null) return;
		showFedoLayer();
		if (!this.isGuest()) {
			$('filmet_ertekelek_login_user').innerHTML = this.user_name;
		//	$('filmet_ertekelek_login_user').show();
		//	$('filmet_ertekelek_login_guest').hide();
		} else {
		//	$('filmet_ertekelek_login_user').hide();
		//	$('filmet_ertekelek_login_guest').show();
		}

		var fedo = $('welcome_layer');
		var wi = document.body.clientWidth;
		var off = 100;
		fedo.style.top = off+'px';
		off = (wi - 500) / 2;
		fedo.style.left = off+'px';
		fedo.show();
		$('welcome_tip').innerHTML = tipper.getTip('welcome');
		$('veletlen').checked = true;
		universe.activeView().onParamsChange();
		createCookie('welcome', '1', 0);
		if (navigator.appVersion.indexOf('MSIE 6.') > -1) {
			$('welcome_layer').innerHTML = $('template_welcome_ie6').value;
		}
	},
	checkMenuAlert: function(melyik) {
		var volt = readCookie('clean_params_on_menu_change');
		// ha mar kerdeztuk, akkor tobbet nem
		if (volt != null) return false;

		// ha meg nincs parameter megadva, akkor sem kerdezzuk meg
		if (!menuer.isParamsExists()) return false;

		showFedoLayer();
		var fedo = $('clear_menu_alert_layer');
		var wi = document.body.clientWidth;
		var off = 100;
		fedo.style.top = off+'px';
		off = (wi - 500) / 2;
		fedo.style.left = off+'px';
		fedo.show();

		return true;
	},
	changeMenuAlert: function(valasz) {
		$('clear_menu_alert_layer').hide();
		$('fedo_layer').hide();
		createCookie('clean_params_on_menu_change', valasz, 0);
		menuer.cleanAllParams();
	},
	setSetting: function(mit, ertek) {
		var a = '';
		if (this.getSetting(mit) != null) {
			a = 'this.settings.'+mit+'.value = "'+ertek+'"';
		} else {
			a = 'this.settings.'+mit+' = new Object(); this.settings.'+mit+'.value = "'+ertek+'"';
		}
		var et = eval(a);

		var keres = new Ajax.Request('userActions.php?action=setusersetting&attrib='+mit+'&value='+ertek, {
		method:'get',
			onSuccess: function(transport){
				universe.userAlert(languager.getText('setting_saved'));
			}
		});
	},
	getSetting: function(mit) {
		/*var volt = readCookie('clear_menu_alert');
		if (volt != null) return volt;
		return 1;*/
		if (mit == 'clean_params_on_menu_change') {
			var volt = readCookie('clean_params_on_menu_change');
			if (volt != null) return volt;
			return 1;
		}
		var a = 'this.settings.'+mit;
		var et = eval(a);
		if (et != null) {
			return et.value;
		} else {
			return null;
		}
	},
	renderUserSettings: function() {
		var adat = new Object();
		adat.settings = this.settings;
		var out = $('tartalom_usersettings');
		if (out == null) return;
		templater.render(out, 'template_usersettings', adat);
	},
	showUserSettings: function() {
		this.renderUserSettings();
		//adat._MODIFIERS = myModifiers;
		//out.innerHTML = TrimPath.processDOMTemplate('template_usersettings', adat);
		menuer.showTartalom('usersettings');
	},
	hideWelcome: function() {
		$('welcome_layer').hide();
		$('fedo_layer').hide();
	},
	showLogin: function() {
		$('login_layer_loading').hide();
		showFedoLayer();
		var fedo = $('login_layer');
		var wi = document.body.clientWidth;
		var off = 100;
		fedo.style.top = off+'px';
		off = (wi - 500) / 2;
		fedo.style.left = off+'px';
		fedo.show();
		$('login_tip').innerHTML = tipper.getTip('login');
		$('user_name_l').className='login-focused';
		$('user_name_l').focus();
		$('user_name_l').select();
	},
	hideLogin: function() {
		$('login_layer').hide();
		$('fedo_layer').hide();
	},
	forgetPassword: function(email) {
		if (email == languager.getText('login_username_inputvalue')) {
			alert(languager.getText('forgetpassword_invalidemail'));
			return;
		}
		// ajax
		var keres = new Ajax.Request('userActions.php?action=forgetpassword&email='+email, {
		method:'get',
			onSuccess: function(transport){
				var ret = transport.responseText;
				var _email = email;
				var e = languager.getTextModified('forgetpassword_sent', new Array(new Array('[[fiok]]', _email)));
				alert(e);
			}
		});
	},
	showRegistration: function() {
		//alert('Köszönjük érdeklődését, hamarosan indulunk.');
		//return;
		showFedoLayer();
		var fedo = $('registration_layer');
		var wi = document.body.clientWidth;
		var off = 100;
		fedo.style.top = off+'px';
		off = (wi - 500) / 2;
		fedo.style.left = off+'px';
		fedo.show();
		$('registration_tip').innerHTML = tipper.getTip('registration');
		this.requestCaptcha();
	},
	hideRegistration: function() {
		$('registration_layer').hide();
		$('fedo_layer').hide();
	},
	checkPasswordStrength: function(value) {
		if (value.length < 1) return;
		var i = 0;
		var numerics = "1234567890";
		var nums = 0;
		var uppers = 0;
		for (i = 0; i < value.length; i++) {
			var kari = value.substr(i, 1);
			if (numerics.indexOf(kari) > -1) {
				nums++;
			}
			if (kari.toLowerCase() != kari) {
				uppers++;
			}
		}
		i = Math.round(value.length / 1.5);
		if (nums > 0) {
			i += 1;
		}
		if (uppers > 0) {
			i += 1;
		}
		var out = $('password_check');
		if (out == null) return;
		if (i < 5) {
			out.innerHTML = languager.getText('password_weak');
			out.style.color = 'red';
		} else if (i < 7) {
			out.innerHTML = languager.getText('password_medium');
			out.style.color = 'blue';
		} else {
			out.innerHTML = languager.getText('password_strong');
			out.style.color = 'green';
		}
	},
	checkPasswordEqual: function(value1, value2) {
		var out = $('password_check_equal');
		if (out == null) return;
		if (value2 != '' && value1 != value2) {
			out.innerHTML = languager.getText('password_missspelled');
			out.style.color = 'red';
		} else {
			out.innerHTML = '';
		}
		if ((value2 + value1).length > 0 && value1 == value2) {
			return true;
		}
		return false;
	},
	checkEmail: function(email) {
		var keres = new Ajax.Request('userActions.php?action=checkemail&email='+email, {
		method:'get',
			onSuccess: function(transport){
				//var ret = transport.responseText.evalJSON();
				userer.parseEmailCheck(transport.responseText);
			}
		});
	},
	parseEmailCheck: function(valasz) {
		var out = $('email_check');
		out.innerHTML = '';
		if (valasz.indexOf("ok!") == -1) {
			out.innerHTML = languager.getText('email_missspelled');
			out.style.color = 'red';
		}
	},
	banMovie: function(movie_id, blokk) {
		/*var item = universe.activeView().tablak[blokk].getItem(movie_id);
		if (item == null) {
			return;
		}*/
		if (this.isGuest() || this.isItemAssessed(movie_id)) {
			this.reallyBanMovie(movie_id, blokk);
			return;
		}
		this.showDidYouSee(movie_id, blokk);
	},
	hideDidYouSee: function() {
		hideFedoLayer();
		var fedo = $('didyousee_layer');
		fedo.hide();
	},
	showDidYouSee: function(movie_id, blokk) {
		showFedoLayer();
		var fedo = $('didyousee_layer');
		fedo.show();
		var wi = document.body.clientWidth;
		var owi = fedo.clientWidth;
		var off = 100;
		fedo.style.top = off+'px';
		off = Math.round((wi - owi) / 2);
		fedo.style.left = off+'px';

		var adat = new Object();
		adat.movie_id = movie_id;
		adat.blokk = blokk;
		var out = $('didyousee_layer');
		if (out == null) return;
		templater.render(out, 'template_didyousee', adat);
		//adat._MODIFIERS = myModifiers;
		//out.innerHTML = TrimPath.processDOMTemplate('template_didyousee', adat);
	},
	markMovieAsSeen: function(movie_id) {
		var keres = new Ajax.Request('userActions.php?action=markmovieasseen&movies='+movie_id, {
		method:'get',
			onSuccess: function(transport){
				//var ret = transport.responseText.evalJSON();
				// TODO: hozzaadni a latottak listahoz
			}
		});
	},
	reallyBanMovie: function(movie_id, blokk) {
		var i = this.getBanList();
		if (i != -1) {
			var aa = new Object();
			aa.id = movie_id;
			aa.comment = '';
			this.listak[i].items.push(aa);
		}

		this.refreshLists();
		if (this.isGuest()) {
			this.drawUserBox();
		}
		var keres = new Ajax.Request('userActions.php?action=banmovie&movies='+movie_id, {
		method:'get',
			onSuccess: function(transport){
				//var ret = transport.responseText.evalJSON();
				var a_blokk = blokk;
				universe.activeView().tablak[(a_blokk)].changePage(universe.activeView().tablak[(a_blokk)].oldal);
			}
		});
	},
	// movie listak kezelese
	addItemToList: function(list_id, movie_id, comment) {
		var i = this.getList(list_id);
		if (i != -1) {
			if (!this.listak[i].items.findBy('id', movie_id)) {
				this.listak[i].items.push({
					id: movie_id,
					comment: comment
				});
				this.refreshLists();
				var keres = new Ajax.Request('userActions.php?action=additemtolist&movie_id='+movie_id+'&list_id='+list_id+'&comment='+comment, {
				method:'get',
					onSuccess: function(transport){
						// skip
					}
				});
			}
		}
	},
	removeItemFromList: function(list_id, movie_id) {
		var i = this.getList(list_id);
		if (i != -1) {
			var j = this.getItemInList(this.listak[i], movie_id);
			if (j != -1) {
				this.listak[i].items.splice(j, 1);
			}
		}
		this.refreshLists();
		var keres = new Ajax.Request('userActions.php?action=removeitemfromlist&movie_id='+movie_id+'&list_id='+list_id, {
		method:'get',
			onSuccess: function(transport){
				// skip
			}
		});
	},
	unbanMovie: function(movie_id, blokk) {
		var i = this.getBanList();
		if (i != -1) {
			var j = this.getItemInList(this.listak[i], movie_id);
			if (j != -1) {
				this.listak[i].items.splice(j, 1);
			}
		}
		this.refreshLists();
		if (this.isGuest()) {
			this.drawUserBox();
		}
		var keres = new Ajax.Request('userActions.php?action=unbanmovie&movies='+movie_id, {
		method:'get',
			onSuccess: function(transport){
				//var ret = transport.responseText.evalJSON();
				var a_blokk = blokk;
				universe.activeView().tablak[(a_blokk)].changePage(universe.activeView().tablak[(a_blokk)].oldal);
				var e = universe.getViewByName('valaszto');
				a_blokk = 0;
				if (e.tablak[0].tipus != 'movie') {
					a_blokk = 1;
				}
				e.tablak[(a_blokk)].changePage(e.tablak[(a_blokk)].oldal);
			}
		});
	},
	isItemInList: function(lista, movie_id) {
		if (typeof lista !== 'object') {
		    var index = this.getList(lista);
		    if (index == -1) return;
		    lista = this.listak[index];
		}
		return (this.getItemInList(lista, movie_id) > -1)?true:false;
	},
	isItemInBanList: function(movie_id) {
		var iju = this.getBanList();
		return this.isItemInList(this.listak[iju], movie_id);
	},
	isItemAssessed: function(movie_id) {
		var iju = 0;
		for (iju=0; iju<this.latott_listak.length; iju++) {
			if (this.isItemInList(this.latott_listak[iju], movie_id)) return true;
		}
		return false;
	},
	isItemInSeenList: function(movie_id) {
		var iju = this.getSeenList();
		return this.isItemInList(this.listak[iju], movie_id);
	},
	getItemInList: function(lista, movie_id) {
		if (lista != null) {
			var j = 0;
			for (j=0; j<lista.items.length; j++) {
				if (lista.items[j].id == movie_id) return j;
			}
		}
		return -1;
	},
	getList: function(list_id) {
		var i = 0;
		for (i=0; i<this.listak.length; i++) {
			if (this.listak[i].id == list_id) {
				return i;
				break;
			}
		}
		return -1;
	},
	getSeenList: function() {
		var i = 0;
		for (i=0; i<this.listak.length; i++) {
			if (this.listak[i].nemertekelt == 1) {
				return i;
				break;
			}
		}
		return -1;
	},
	getBanList: function() {
		var i = 0;
		for (i=0; i<this.listak.length; i++) {
			if (this.listak[i].banlist == 1) {
				return i;
				break;
			}
		}
		return -1;
	},
	getBanListCount: function() {
		var i = this.getBanList();
		return ((i>-1)?(this.listak[i].items.length):(0));
	},
	getListsWithMovie: function(movie_id) {
		var in_ = new Array();
		var out_ = new Array();
		var i = 0;
		for (i=0; i<this.listak.length; i++) {
			if (this.isItemInList(this.listak[i], movie_id)) {
				in_.push(this.listak[i]);
			} else {
				out_.push(this.listak[i]);
			}
		}
		var ret = new Object();
		ret.inIt = in_;
		ret.outIt = out_;
		return ret;
	},
	refreshLists: function() {
		var adat = new Object();
		adat.listak = this.listak;
		adat.latott_listak = this.latott_listak;
		var out = $('menu_listaim');
		if (out == null) return;
		templater.render(out, 'template_menu_listaim', adat, function() { $('menu_listaim').show(); });
		this.refreshEditLists();
	},
	showLists: function() {
		this.refreshLists();
	},
	hideLists: function() {
		$('menu_listaim').hide();
	},
	toggleLists: function() {
		if ($('menu_listaim').visible()) {
			this.hideLists();
		} else {
			this.showLists();
		}
	},
	toggleCustom: function(mit) {
		if ($(mit).visible()) {
			$(mit).hide();
		} else {
			$(mit).show();
		}
	},
	toggleAddList: function() {
		if ($('menu_addlist').visible()) {
			this.hideAddList();
		} else {
			this.showAddList();
		}
	},
	showAddList: function() {
		this.refreshLists();
		$('menu_addlist').show();
	},
	hideAddList: function() {
		$('menu_addlist').hide();
	},
	createList: function(name) {
		var keres = new Ajax.Request('userActions.php?action=createlist&name='+name, {
		method:'get',
			onSuccess: function(transport){
				if (transport.responseText != 'no!') {
					var ret = transport.responseText.evalJSON();
					userer.listak = ret;
					userer.refreshLists();
				}
			}
		});
	},
	changeList: function(id, name) {
		var keres = new Ajax.Request('userActions.php?action=changelist&list_id='+id+'&name='+name, {
		method:'get',
			onSuccess: function(transport){
				if (transport.responseText != 'no!') {
					var ret = transport.responseText.evalJSON();
					userer.listak = ret;
					userer.refreshLists();
				}
			}
		});
	},
	setListPublic: function(id, publikus) {
		var _e = 1;
		if (!publikus) {
			_e = 0;
		}
		var keres = new Ajax.Request('userActions.php?action=setlistpublic&list_id='+id+'&public='+_e, {
		method:'get',
			onSuccess: function(transport){
				if (transport.responseText != 'no!') {
					var ret = transport.responseText.evalJSON();
					userer.listak = ret;
					universe.userAlert(languager.getText('setting_saved'));
					//userer.refreshLists();
				}
			}
		});
	},
	deleteList: function(list_id) {
		var a = this.getList(list_id);
		var list = this.listak[a];
		if (list.banlist == 1) return false;
		if (!confirm(languager.getTextModified('confirm_list_delete', new Array(new Array('[[list_name]]', list.name))))) return false;
		var keres = new Ajax.Request('userActions.php?action=deletelist&list_id='+list_id, {
		method:'get',
			onSuccess: function(transport){
				if (transport.responseText != 'no!') {
					var ret = transport.responseText.evalJSON();
					userer.listak = ret;
					userer.refreshLists();
					universe.userAlert(languager.getText('list_delete_done'));
				}
			}
		});
	},
	truncateList: function(list_id) {
		var a = this.getList(list_id);
		var list = this.listak[a];
		if (!confirm(languager.getTextModified('confirm_list_truncate', new Array(new Array('[[list_name]]', list.name))))) return false;
		var keres = new Ajax.Request('userActions.php?action=truncatelist&list_id='+list_id, {
		method:'get',
			onSuccess: function(transport){
				if (transport.responseText != 'no!') {
					var ret = transport.responseText.evalJSON();
					userer.listak = ret;
					userer.refreshLists();
					universe.userAlert(languager.getText('list_truncate_done'));
				}
			}
		});
	},
	refreshEditLists: function() {
		var adat = {listak: this.listak};
		templater.render($('list_edit_movies_div'), 'template_list_edit_movies', adat, null);
	},
	// movie listak vege
	onInputFocus: function(opj, value) {
		if (opj.value == value) {
			opj.value = '';
		}
	},
	onInputBlur: function(opj, value) {
		if (opj.value == '') {
			opj.value = value;
		}
	},
	toggleUserMenu: function() {
		if ($('user_secondary_menu').visible()) {
			$('user_secondary_menu').hide();
		} else {
			$('user_secondary_menu').show();
		}
	},
	toggleUserToolbarDropdown: function() {
		if ($('user_toolbar_dropdown').visible()) {
			$('user_toolbar_dropdown').hide();
		} else {
			$('user_toolbar_dropdown').show();
			//alignTo($('user_toolbar_dropdown'), $('user_toolbar_username'));
		}
	},
	showRecom: function(movie_id) {
		if (this.isGuest()) {
			this.showLogin();
			return;
		}
		showFedoLayer();
		var fedo = $('recom_layer');
		fedo.show();
		window.scrollTo(0, 0);
		var width = document.body.clientWidth;
		var owidth = fedo.clientWidth;
		var off = 40;
		fedo.style.top = off+'px';
		off = Math.round((width - owidth) / 2);
		fedo.style.left = off+'px';
		new Ajax.Updater('recom_iframe', '/recomwiz/?id='+movie_id+'&userid='+this.user_id, {asynchronous:true, evalScripts: true});
	},
	hideRecom: function() {
		$('fedo_layer').hide();
		$('recom_layer').hide();
		$('recom_iframe').innerHTML = '';
	},
	showTrailer: function(blokk, id) {
		showFedoLayer();
		var elem = universe.activeView().tablak[blokk-1].getItem(id);
		var emb = elem.getTrailer();
		var title = '';
		if (elem.type == 'movie_assess') {
			title = elem.tree.film.title;
		} else {
			title = elem.tree.title;
		}

		//document.getElementById('trailer_inner').innerHTML = '<h1>' + title + '</h1> ' + emb + '<br/> ' + languager.getText('missing_trailer_prefix') + '<a href="#" onclick="userer.missingTrailer(' + elem.child_azon + ", '" + title.escapeHTML() + "'); return false;" + '">' + languager.getText('missing_trailer_link') + '</a>' + languager.getText('missing_trailer_suffix');
		document.getElementById('trailer_inner').innerHTML = '<h1>' + title + '</h1><div id="trailerContainer"></div> <br/> ' + languager.getText('missing_trailer_prefix') + '<a href="#" onclick="userer.missingTrailer(' + elem.azon + ", '" + title.escapeHTML() + "'); return false;" + '">' + languager.getText('missing_trailer_link') + '</a>' + languager.getText('missing_trailer_suffix');

		var videoID = emb;
		// Lets Flash from another domain call JavaScript
		var params = { allowScriptAccess: "always" };
		// The element id of the Flash embed
		var atts = { id: "ytPlayer" };
		// All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
		swfobject.embedSWF("http://www.youtube.com/v/" + videoID +
		                 "&enablejsapi=1&playerapiid=player1",
		                 "trailerContainer", "480", "295", "8", null, null, params, atts);

		var fedo = $('trailer_layer');
		fedo.show();

		var wi = document.body.clientWidth;
		var owi = fedo.clientWidth;
		var off = 100;
		fedo.style.top = off+'px';
		off = Math.round((wi - owi) / 2);
		fedo.style.left = off+'px';
		$('trailer_tip').innerHTML = tipper.getTip('trailer');
		return false;
	},
	showTrailerExt: function(elem) {
		showFedoLayer();
		var j = 0;
		var obj = elem.linkek;
		var emb = "Nincs trailer";
		for (j=0; j<obj.length; j++) {
			if (obj[j].name == 'trailer') {
				emb = obj[j].url.unescapeHTML();
			}
		}
		//emb = emb.replace(/&quot;/g, '"').replace(/\\\"/g, '"');
		var title = elem.title;
		//document.getElementById('trailer_inner').innerHTML = '<h1>' + title + '</h1> ' + emb + '<br/> ' + languager.getText('missing_trailer_prefix') + '<a href="#" onclick="userer.missingTrailer(' + elem.azon + ", '" + title.escapeHTML() + "'); return false;" + '">' + languager.getText('missing_trailer_link') + '</a>' + languager.getText('missing_trailer_suffix');
		document.getElementById('trailer_inner').innerHTML = '<h1>' + title + '</h1><div id="trailerContainer"></div> <br/> ' + languager.getText('missing_trailer_prefix') + '<a href="#" onclick="userer.missingTrailer(' + elem.azon + ", '" + title.escapeHTML() + "'); return false;" + '">' + languager.getText('missing_trailer_link') + '</a>' + languager.getText('missing_trailer_suffix');

		var videoID = emb;
		// Lets Flash from another domain call JavaScript
		var params = { allowScriptAccess: "always" };
		// The element id of the Flash embed
		var atts = { id: "ytPlayer" };
		// All of the magic handled by SWFObject (http://code.google.com/p/swfobject/)
		swfobject.embedSWF("http://www.youtube.com/v/" + videoID +
		                 "&enablejsapi=1&playerapiid=player1",
		                 "trailerContainer", "480", "295", "8", null, null, params, atts);

		var fedo = $('trailer_layer');
		fedo.show();

		var wi = document.body.clientWidth;
		var owi = fedo.clientWidth;
		var off = 100;
		fedo.style.top = off+'px';
		off = Math.round((wi - owi) / 2);
		fedo.style.left = off+'px';
		$('trailer_tip').innerHTML = tipper.getTip('trailer');
		window.scrollTo(0, 0);
		return false;
	},
	hideTrailer: function() {
		$('fedo_layer').hide();
		$('trailer_layer').hide();
		$('trailer_inner').innerHTML = '';
	},
	missingTrailer: function(azon, title) {
		var keres = new Ajax.Request('userActions.php?action=missingtrailer&movie='+azon+'&title='+title, {
		method:'get',
			onSuccess: function(transport){
				alert('Köszönjük! 24 órán belül javítjuk.');
			}
		});
	},
	showEgyeb: function(melyik) {
		showFedoLayer();
		var emb = "";
		if (melyik == 'torrent') {
			emb = languager.getText('torrent_embedded');
			emb = emb.unescapeHTML().replace(/&quot;/g, '"');
		} else {
			emb = melyik;
			//alert(melyik);
		}

		document.getElementById('egyeb_inner').innerHTML = emb;

		var fedo = $('egyeb_layer');
		fedo.show();

		var wi = document.body.clientWidth;
		var owi = fedo.clientWidth;
		var off = 100;
		fedo.style.top = off+'px';
		off = Math.round((wi - owi) / 2);
		fedo.style.left = off+'px';
	},
	hideEgyeb: function() {
		$('fedo_layer').hide();
		$('egyeb_layer').hide();
		$('egyeb_inner').innerHTML = '';
	},
	// ember listak
	addAssessorToList: function(list_id, assessor_id, comment) {
		var i = this.getAssessorList(list_id);
		if (i != -1) {
			if (!this.assessorListak[i].items.findBy('id', assessor_id)) {
				this.assessorListak[i].items.push({
					id: assessor_id,
					comment: comment
				});
				this.refreshAssessorLists();
				var keres = new Ajax.Request('userActions.php?action=addassessortolist&assessor_id='+assessor_id+'&list_id='+list_id+'&comment='+comment, {
				method:'get',
					onSuccess: function(transport){
						// skip
					}
				});
			}
		}
	},
	removeAssessorFromList: function(list_id, assessor_id) {
		var i = this.getAssessorList(list_id);
		if (i != -1) {
			var j = this.getAssessorInList(this.assessorListak[i], assessor_id);
			if (j != -1) {
				this.assessorListak[i].items.splice(j, 1);
			}
		}
		this.refreshAssessorLists();
		var keres = new Ajax.Request('userActions.php?action=removeassessorfromlist&assessor_id='+assessor_id+'&list_id='+list_id, {
		method:'get',
			onSuccess: function(transport){
				// skip
			}
		});
	},
	isAssessorInList: function(lista, assessor_id) {
		if (typeof lista !== 'object') {
		    var index = this.getAssessorList(lista);
		    if (index == -1) return false;
		    lista = this.assessorListak[index];
		}
		return (this.getAssessorInList(lista, assessor_id) > -1)?true:false;
	},
	getAssessorInList: function(lista, assessor_id) {
		if (lista != null) {
			var j = 0;
			for (j=0; j<lista.items.length; j++) {
				if (lista.items[j].id == assessor_id) return j;
			}
		}
		return -1;
	},
	getAssessorList: function(list_id) {
		var i = 0;
		for (i=0; i<this.assessorListak.length; i++) {
			if (this.assessorListak[i].id == list_id) {
				return i;
				break;
			}
		}
		return -1;
	},
	refreshAssessorLists: function() {
		/*var adat = new Object();
		adat.assessorListak = this.assessorListak;
		var out = $('menu_assessorlistaim');
		if (out == null) return;
		adat._MODIFIERS = myModifiers;
		out.innerHTML = TrimPath.processDOMTemplate('template_menu_assessorlistaim', adat);*/
		this.refreshAssessorEditLists();
		this.refreshEmberekMenu();
	},
	refreshAssessorEditLists: function() {
		var adat = {assessorListak: this.assessorListak};
		templater.render($('list_edit_assessors_div'), 'template_list_edit_assessors', adat, null);
	},
	showAssessorLists: function() {
		this.refreshAssessorLists();
		$('menu_assessorlistaim').show();
	},
	hideAssessorLists: function() {
		$('menu_assessorlistaim').hide();
	},
	toggleAssessorLists: function() {
		if ($('menu_assessorlistaim').visible()) {
			this.hideAssessorLists();
		} else {
			this.showAssessorLists();
		}
	},
	createAssessorList: function(name) {
		var keres = new Ajax.Request('userActions.php?action=createassessorlist&name='+name, {
		method:'get',
			onSuccess: function(transport){
				if (transport.responseText != 'no!') {
					var ret = transport.responseText.evalJSON();
					userer.assessorListak = ret;
					userer.refreshAssessorLists();
				}
			}
		});
	},
	changeAssessorList: function(id, name) {
		var keres = new Ajax.Request('userActions.php?action=changeassessorlist&list_id='+id+'&name='+name, {
		method:'get',
			onSuccess: function(transport){
				if (transport.responseText != 'no!') {
					var ret = transport.responseText.evalJSON();
					userer.assessorListak = ret;
					userer.refreshAssessorLists();
				}
			}
		});
	},
	setAssessorListPublic: function(id, publikus) {
		var _e = 1;
		if (!publikus) {
			_e = 0;
		}
		var keres = new Ajax.Request('userActions.php?action=setassessorlistpublic&list_id='+id+'&public='+_e, {
		method:'get',
			onSuccess: function(transport){
				if (transport.responseText != 'no!') {
					var ret = transport.responseText.evalJSON();
					userer.assessorListak = ret;
					//userer.refreshAssessorLists();
				}
			}
		});
	},
	deleteAssessorList: function(list_id) {
		var a = this.getAssessorList(list_id);
		var list = this.assessorListak[a];
		if (list.ismerosok == 1 || list.erdekesek == 1) return false;
		if (!confirm(languager.getTextModified('confirm_assessorlist_delete', new Array(new Array('[[list_name]]', list.name))))) return false;
		var keres = new Ajax.Request('userActions.php?action=deleteassessorlist&list_id='+list_id, {
		method:'get',
			onSuccess: function(transport){
				if (transport.responseText != 'no!') {
					var ret = transport.responseText.evalJSON();
					userer.assessorListak = ret;
					userer.refreshAssessorLists();
					universe.userAlert(languager.getText('list_delete_done'));
				}
			}
		});
	},
	truncateAssessorList: function(list_id) {
		var a = this.getAssessorList(list_id);
		var list = this.assessorListak[a];
		if (!confirm(languager.getTextModified('confirm_assessorlist_truncate', new Array(new Array('[[list_name]]', list.name))))) return false;
		var keres = new Ajax.Request('userActions.php?action=truncateassessorlist&list_id='+list_id, {
		method:'get',
			onSuccess: function(transport){
				if (transport.responseText != 'no!') {
					var ret = transport.responseText.evalJSON();
					userer.assessorListak = ret;
					userer.refreshAssessorLists();
					universe.userAlert(languager.getText('list_truncate_done'));
				}
			}
		});
	},
	// ember listak vege
	sendIM: function(assessor_id, message, blokk, azon) {
		if (this.isGuest()) {
			this.showLogin();
			return;
		}
		if (message.length < 2) {
			return;
		}
		if ((blokk || blokk == 0)  && azon && universe.activeView().tablak) {
			universe.activeView().tablak[blokk].getItem(azon).toggleElementDetails('default');
		}
		// ajax
		var params = new Hash();
		params.set('action', 'im');
		params.set('assessor_id', assessor_id);
		params.set('message', message);
		var keres = new Ajax.Request('userActions.php', {
			method:'post',
			parameters: params,	//'action=im&assessor_id='+assessor_id+'&message='+message,
			onSuccess: function(transport){
					var ret = transport.responseText.evalJSON();
					userer.out_messages = ret;
					userer.refreshOutMessagesWindow();
					universe.userAlert(languager.getText('message_sent'));
					//userer.parseSessionCheck(ret, true);
				}
			});
	},
	sendIMToEmail: function(message_id) {
		// ajax
		var keres = new Ajax.Request('userActions.php', {
		method:'post',
		parameters:'action=sendimtoemail&message_id='+message_id,
			onSuccess: function(transport){
				universe.userAlert(languager.getText('message_sent_email'));
				//userer.parseSessionCheck(ret, true);
			}
		});
	},
	toggleLevelek: function() {
		if ($('menu_levelek').visible()) {
			$('menu_levelek').hide();
		} else {
			$('menu_levelek').show();
		}
	},
	toggleSajatAdatok: function() {
		if ($('menu_sajatadatok').visible()) {
			$('menu_sajatadatok').hide();
		} else {
			$('menu_sajatadatok').show();
		}
	},
	showQuestions: function(again) {
		if (this.isGuest()) {
			universe.userAlert(languager.getText('need_login'));
			return;
		}
		showFedoLayer();
		var fedo = $('questions_layer');
		fedo.show();
		var width = document.body.clientWidth;
		var owidth = fedo.clientWidth;
		var off = 40;
		fedo.style.top = off+'px';
		off = Math.round((width - owidth) / 2);
		fedo.style.left = off+'px';
		var urr = '/questionnaire/questionaire_frame.php';
		if (again != null || (userer.dimension11 > 0 && userer.dimension11 < 25)) {
			urr += '?ujra=1';
		}
		$('questions_iframe').src = urr;
		//openNewWindow('http://filmx.hu/recom');
	},
	hideQuestions: function() {
		$('fedo_layer').hide();
		$('questions_layer').hide();
	},
	showQuestionResult: function() {
		menuer.showTartalom('questionResult');
		//menuer.resetButtons();
		if (userer.question_result == null) {
			var keres = new Ajax.Request('userActions.php?action=getquestionresult', {
				method:'get',
				onSuccess: function(transport){
					if (transport.responseText != 'no!') {
						var ret = transport.responseText.evalJSON();
						userer.question_result = ret;
						userer.refreshQuestionResult();
					}
				}
			});
		} else {
			userer.refreshQuestionResult();
		}
	},
	showQuestionsAgain: function() {
		this.showQuestions(true);
	},
	isOldQuestionFill: function() {
		if (getDiffYears('', this.fullfilldate) > 1) {
			return true;
		}
		return false;
	},
	refreshQuestionResult: function() {
		var adat = {question_result: this.question_result, fullfilldate: this.fullfilldate.replace(/-/g, '.') + '.'};
		templater.render($('question_result_div'), 'template_questionResultTartalom', adat, null);
	},
	refreshEmberekMenu: function() {
		var adat = {listak: this.assessorListak};
		templater.render($('emberek_menu_lista_div'), 'template_emberek_menu_lista', adat, null);
	},
	listEditOnChange: function(egyik, masik) {
		if ($(egyik).visible()) {
			$(egyik).hide();
			$(masik).show();
		} else {
			$(masik).hide();
			$(egyik).show();
		}
	},
	showPersonalDatas: function() {
		menuer.showTartalom('personaldatas');
		new Ajax.Updater('personal_data_inner', '/personaldata/personaldata_main.php', {asynchronous:true, evalScripts: true});
	},
	showQWizard: function() {
		menuer.showTartalom('qwizard');
		new Ajax.Updater('qwizard_inner', '/questionwizard/qwizard_main.php?clearQWdata=1', {asynchronous:true, evalScripts: true});
	},
	saveObserver: function(add, type, id) {
		var keres = new Ajax.Request('userActions.php', {
			method:'post',
			parameters:'action=addobserver&add='+add+'&type='+type+'&id='+id,
			onSuccess: this.saveObserverCallback.bind(this)
			
		});
	},
	saveObserverCallback: function(transport) {
		universe.userAlert(languager.getText('setting_saved'));
		var params = transport.request.options.parameters;
		this.fireEvent('observerchange', params.add, params.type, params.id);
	},
	getSeenMovieCount: function() {
		var ret = 0;
		for (var i=0, lngth = this.latott_listak.length; i < lngth; i++) {
			ret += this.latott_listak[i].items.length;
		}
		return ret;
	},
	markSerieSeen: function(isSeen, movieId, seasonId, episodeId, callback) {
		if (!movieId || !seasonId) return false;
		var params = new Hash();
		params.set('action', 'markSerieSeen');
		params.set('seen', (isSeen?'1':'0'));
		params.set('movieId', movieId);
		params.set('seasonId', seasonId);
		if (episodeId) params.set('episodeId', episodeId);
		var keres = new Ajax.Request('userActions.php', {
			method:'post',
			parameters: params,
			onSuccess: this.markSerieSeenCallback.bind(this),
			afterCallback: callback
		});
	},
	markSerieSeenCallback: function(transport) {
		if (transport.request.options.afterCallback) {
			var p = transport.request.options.parameters;
			transport.request.options.afterCallback(transport.responseText == 'done!', p.seen, p.movieId, p.seasonId, p.episodeId);
		}
	}
});

