function myAlert(message) {
	alert(message);
}

function doLogin() {
	doUserAction('login-box', true, 'registration-box');
}

function doRegistration() {
	doUserAction('registration-box', true, 'login-box');
}

function closeUserActionBox() {
	doUserAction('login-box', false, 'registration-box');
}

function doUserAction(boxId, show, otherBoxId) {
	var otherBox = document.getElementById(otherBoxId);
	if (otherBox) {	
		otherBox.style.display = 'none';
	}
	var box = document.getElementById(boxId);
	var content = document.getElementById('content-column');
	if (box) {	
		box.style.display = show ? '' : 'none';
		if (show) {
			var inputs = box.getElementsByTagName('input');
			if (inputs.length > 0) {
				inputs[0].focus();
			}
		}
	}
	if (content) {	
		content.style.display = show && box ? 'none' : '';
	}
}

function validateAndSubmit(formOrAction, doSubmit, setFormTypeOnSubmit) {
	var form = formOrAction;
	while (form && (form.nodeName != 'FORM')) {
		form = form.parentNode;
	}
	var canSubmit = false;
	if (form) {
		var radios = new Array();
		var inputs = form.getElementsByTagName('input');
		canSubmit = true;
		var needAgree = false;
		var needValidEmail = false;
		for (var i = 0, length = inputs.length; i < length; i++) {
			var input = inputs[i];
			var value = input.value;
			var name = input.name;
			var type = input.type;
			if (type == 'text') {
				if (input.value == '') {
					input.focus();
					canSubmit = false;
					break;
				} else if (input.className.indexOf('email') != -1) {
					var p = value.indexOf('@');
					var validEmail = (p !== -1) && (p == value.lastIndexOf('@')) && (value.lastIndexOf('.') > p);
					if (!validEmail) {
						input.focus();
						canSubmit = false;
						needValidEmail = true;
						break;
					}
				}
			} else if (type == 'radio') {
				var foundIndex = -1;
				for (var j = 0, lengthRadios = radios.length; j < lengthRadios; j++) {
					if ((radios[j][0] == name)) {
						foundIndex = j;
						break;
					}
				}
				if (foundIndex == -1) {
					foundIndex = radios.length;
					radios.push(new Array(name, false));
				}
				if (input.checked) {
					radios[foundIndex][1] = true;
				}
			} else if ((type == 'checkbox') && !input.checked) {
				input.focus();
				canSubmit = false;
				needAgree = true;
				break;
			}
		}
		if (canSubmit) {
			for (var i = 0, length = radios.length; i < length; i++) {
				if (!radios[i][1]) {
					canSubmit = false;
					break;
				}
			}
		}
		if (canSubmit) {
			if (doSubmit) {
				if (setFormTypeOnSubmit) {
				}
				form.submit();
			}
		} else {
			alert('Kérlek tölts ki minden mezőt' + (needAgree ? ' és fogadd el a felhasználási feltételeket' : '') + '!' + (needValidEmail ? '\nÉrvényes e-mail címet adj meg!' : ''));
		}
	} else {
		canSubmit = false;
	}
	return canSubmit;
}

function showUserFieldEditor(row) {
	row.className = 'user-data-row user-data-row-editable';
}

function hideUserFieldEditor(row) {
	row.className = 'user-data-row';
}

var actionFrame = false;
var editUserCallback = false;

function submitAction(framePrefix, url, dontShowMessage) {
	if (actionFrame) {
		if (!dontShowMessage) {
			alert('Kérlek ismételd meg később!');
		}
	} else {
		actionFrame = document.getElementById(framePrefix + 'Frame');
		if (actionFrame) {
			actionFrame.contentWindow.location.replace(url);
		}
	}
}

function actionComplete(f) {
	actionFrame = false;
	if (f) {
		f.call(window);
	}
}

function editUserField(editLink, userId, name, type, optParam) {
	var row = editLink.parentNode;
	editLink.style.display = 'none';
	var userData = row.parentNode;
	var divs = userData.parentNode.getElementsByTagName('div');
	var divsToRemove = new Array();
	for (var i = 0, length = divs.length; i < length; i++) {
		var div = divs[i];
		if (div.className == 'user-data-editor') {
			divsToRemove.push(div);
		}
	}
	for (var i = 0, length = divsToRemove.length; i < length; i++) {
		var div = divsToRemove[i];
		div.parentNode.removeChild(div);
	}
	if (userId) {
		var label = row.getElementsByTagName('span');
		label = label.length > 0 ? label[0].innerHTML : '';
		var value = row.getElementsByTagName('b');
		value = value.length > 0 ? value[0].innerHTML : '';
		var divEditor = document.createElement('div');
		divEditor.className = 'user-data-editor';
		var divInner = document.createElement('div');
		divInner.className = 'user-data-row user-data-row-editable';
		var input = false;
		var divRadios = false;
		var formUpload = false;
		var buttonSave = document.createElement('a');
		buttonSave.className = 'edit';
		var closeFunction = function() {
			divEditor.parentNode.removeChild(divEditor);
			editLink.style.display = '';
		}
		var saveFunction = function() {
			var newValue = false;
			var parameter = false;
			if (input) {
				newValue = input.value;
				parameter = 'n';
			} if (divRadios) {
				var radios = divRadios.getElementsByTagName('input');
				for (var i = 0, length = radios.length; i < length; i++) {
					var radio = radios[i];
					if (radio.checked) {
						newValue = radio.value;
						parameter = 'p';
						break;
					}
				}
			} else if (formUpload) {
				var c = new ClassManager(userData);
				c.addClass('image-uploading');
				formUpload.submit();
			}
			if (parameter && (newValue != value)) {
				submitAction('editUser', '../actions/save_user_data.php?u=' + userId + '&' + parameter + '=' + name + '&v=' + newValue);
			}
			closeFunction.call(window);
		}
		buttonSave.onclick = saveFunction;
		buttonSave.href = '#';
		buttonSave.innerHTML = 'Mentés';
		divInner.appendChild(buttonSave);
		var buttonCancel = document.createElement('a');
		buttonCancel.className = 'edit edit-cancel';
		buttonCancel.onclick = closeFunction;
		buttonCancel.href = '#';
		buttonCancel.innerHTML = 'Bezárás';
		divInner.appendChild(buttonCancel);
		if (type == 't') {
			input = document.createElement('input');
			input.type = 'text';
			input.name = 'userData';
			input.value = value;
			divInner.insertBefore(input, buttonSave);
		} else if (type == 'r') {
			buttonSave.style.display = 'none';
			editUserCallback = function(options) {
				var length = options.length;
				if (length == 0) {
					closeFunction.call(window);
				} else {
					divRadios = document.createElement('div');
					divRadios.className = 'user-data-editor-radios';
					for (var i = 0; i < length; i++) {
						var option = options[i];
						var divRadio = document.createElement('div');
						var id = 'user-radio-' + name + '-' + option[0];
						var radio = document.createElement('input');
						radio.type = 'radio';
						radio.name = 'userData';
						radio.id = id;
						radio.value = option[0];
						radio.checked = option[1] == value;
						divRadio.appendChild(radio);
						var label = document.createElement('label');
						label.setAttribute('for', id);
						label.innerHTML = option[1];
						label.onclick = function() {
							setTimeout(saveFunction, 10);
						}
						divRadio.appendChild(label);
						divRadios.appendChild(divRadio);
					}
					divInner.insertBefore(divRadios, buttonSave);
					buttonSave.style.display = '';
				}
			}
			submitAction('editUser', '../actions/get_properties.php?n=' + name + (optParam ? '&u=Nincs megadva' : ''));
		} else if (type == 'i') {
			var divUpload = document.createElement('div');
			formUpload = document.createElement('form');
			formUpload.action = '../actions/upload_avatar.php?u=' + userId;
			formUpload.method = 'post';
			formUpload.target = 'editUserUploadFrame';
			formUpload.setAttribute('enctype', 'multipart/form-data');
			var inputUpload = document.createElement('input');
			inputUpload.type = 'file';
			inputUpload.name = 'f';
			formUpload.appendChild(inputUpload);
			divUpload.appendChild(formUpload);
			divInner.insertBefore(divUpload, buttonSave);
		}
		divEditor.appendChild(divInner);
		row.parentNode.insertBefore(divEditor, row.nextSibling);
	}
}

function setEditedField(name, value) {
	var div = document.getElementById('user-data-row-' + name);
	if (div) {
		var b = div.getElementsByTagName('b');
		b = b.length > 0 ? b[0] : false;
		if (b) {
			b.innerHTML = value;
		}
	}
}

function callEditUserCallback(params) {
	if (editUserCallback) {
		editUserCallback.call(window, params);
	}
}

function setUserAvatar(id) {
	var avatarImage = document.getElementById('user-avatar-image');
	if (avatarImage) {
		if (id) {
			avatarImage.src = '../images/avatar.php?u=' + id + '&t=' + (new Date()).getTime();
		}
		var c = new ClassManager(avatarImage.parentNode.parentNode);
		c.removeClass('image-uploading');
	}
}

function uploadUserAvatarError(errorMsg) {
	setUserAvatar();
	myAlert(errorMsg);
}

function showHideDiv(link) {
	var target = link.parentNode;
	var root = target.parentNode;
	var divs = root.getElementsByTagName('div');
	for (var i = 0, length = divs.length; i < length; i++) {
		var div = divs[i];
		if (div.parentNode == root) {
			var needToOpen = div == target;
			div = div.getElementsByTagName('div');
			if (div.length > 0) {
				div = div[0];
				div.style.display = needToOpen && (div.style.display == 'none') ? '' : 'none';
			}
		}
	}
}

function callLightbox(link) {
	if (typeof(myLightbox) != 'undefined') {
		myLightbox.start(link);
		return false;
	} else {
		return false;
	}
}

function setMainContentStyle(isInner) {
	var mainContent = document.getElementById('main-content');
	if (mainContent) {
		mainContent.className = isInner ? 'main-content main-content-inner-page' : 'main-content';
	}
}

function buildImageXOfX(imageNo, images) {
	var caption = imageNo + '. kép ' + ((images + ' ').charAt(0) == '5' ? 'az ' : 'a ') + images + ' képből';
	return caption;
}

function changeCard(select) {
	var messageCard = document.getElementById('message-card');
	if (messageCard) {
		messageCard.src = '../images/kepeslap.php?s=' + select.value;
	}
}

function toggleElement(idOrElement) {
	var element = typeof(idOrElement) == 'string' ? document.getElementById(idOrElement) : idOrElement;
	if (element) {
		element.style.display = element.style.display == 'none' ? '' : 'none';
	}
}

function submitForm(formOrChild) {
	var action = formOrChild && (formOrChild.nodeName == 'A') ? formOrChild.getAttribute('href') : false;
	while (formOrChild && (formOrChild.nodeName != 'FORM')) {
		var myForms = formOrChild.getElementsByTagName('form');
		if (myForms.length > 0) {
			formOrChild = myForms[0];
		} else {
			formOrChild = formOrChild.parentNode;
		}
	}
	if (formOrChild) {
		if (action && (action != '#')) {
			formOrChild.action = action;
		}
		formOrChild.submit();
	}
}

function refineMemberSearch() {
}

function submitImageAction(action, userId, imageId) {
	submitAction('editImage', '../actions/edit_image.php?u=' + userId + '&i=' + imageId + '&a=' + action);
}
function changeAvatar(userId, imageId) {
	submitImageAction('a', userId, imageId);
}

function deleteImage(userId, imageId) {
	submitImageAction('d', userId, imageId);
}

function rateAuction(auctionId, reporterUserId, rating, userId) {
	submitAction('auctionRating', '../actions/auction_rating.php?u=' + reporterUserId + '&a=' + auctionId + '&r=' + rating + '&t=' + userId);
	return false;
}

function getMessageCount(userId) {
	submitAction('messageCounter', '../actions/message_count.php?u=' + userId, true);
}

function setMessageCounters(counters) {
	actionComplete();
	var icons = document.getElementById('logged-in-icons');
	if (icons) {
		var links = icons.getElementsByTagName('a');
		for (var i = 0, length = Math.min(links.length, counters.length); i < length; i++) {
			var link = links[i];
			var counter = counters[i];
			var hasMessage = counter > 0;
			var title = link.title;
			if (title) {
				var p = title.indexOf(' (');
				if (p != -1) {
					title = title.substring(0, p);
				}
				if (hasMessage) {
					title += ' (' + counter + ' új)';
				}
				link.title = title;
			}
			var icon = link.getElementsByTagName('img');
			if (icon.length > 0) {
				icon = icon[0];
				var src = icon.src;
				var p = src.lastIndexOf('.');
				var ext = '';
				if (p != -1) {
					ext = src.substring(p);
					src = src.substring(0, p);
				}
				var srcLength = src.length;
				var hasOn = (srcLength > 2) && (src.substring(srcLength - 3) == '-on');
				if (hasMessage) {
					if (!hasOn) {
						icon.src = src + '-on.gif';
					}
				} else {
					if (hasOn) {
						icon.src = src.substring(0, srcLength - 3) + '.png';
					}
				}
			}
		}
	}
}

function setFormInput(form, value, doSubmit, actionParam, actionParamValue) {
	if (typeof(form) == 'string') {
		form = document.getElementById(form);
	}
	if (form) {
		if (actionParam) {
			var action = form.action;
			var param = '&' + actionParam + '=';
			var p = action.indexOf(param);
			if (p != -1) {
				action = action.substring(0, p);
			}
			form.action = action + param + actionParamValue;
		}
		var inputs = form.getElementsByTagName('input');
		if (inputs.length > 0) {
			inputs[0].value = value;
		}
		if (doSubmit) {
			form.submit();
		}
	}
	return form;
}

function editImageCaption(imageId, caption) {
	caption = prompt('Kép átnevezése', caption);
	if (caption != null) {
		setFormInput('editImageCaptionForm', caption, true, 'i', imageId);
	}
}

