// JavaScript Document

function popupWindow(windowType, height)
{
	window.open('popup_' + windowType + '.php', null, 'location=no,menubar=no,directories=no,resizable=no,scrollbars=no,status=no,toolbar=no,width=520,height=' + height);
};

function getCaretPos(element)
{
	if (document.selection)
	{
		var range = document.selection.createRange();
		var workRange = range.duplicate();
		workRange.moveToElementText(element);
		workRange.setEndPoint('EndToEnd', range);
		element.selectionStart = workRange.text.length - range.text.length;
		element.selectionEnd = element.selectionStart + range.text.length;
	};
};

function textLimit(e, textFieldID, limit, infoFieldID)
{
	var enabledKeys = new Array(8, 46, 37, 38, 39, 40, 33, 34, 35, 36);
	var textField = document.getElementById(textFieldID);
	var infoField = document.getElementById(infoFieldID);
	var keyCode;
	if (window.event) // IE
	{
		keyCode = e.keyCode;
	}
	else  // FF
	{
		keyCode = e.which;
	};

	var foundEnabledKey = false;
	var index;
	for (index in enabledKeys)
	{
		if (enabledKeys[index] == keyCode)
		{
			foundEnabledKey = true;
		};
	};
	
	var correction;
	getCaretPos(textField);
	if (foundEnabledKey)
	{
		if (keyCode == 8)
		{
			if (textField.selectionStart  == 0)
			{
				correction = 0;
			}
			else
			{
				correction = 1;
			};
		}
		else if (keyCode == 46)
		{
			if (textField.selectionStart  == textField.value.length)
			{
				correction = 0;
			}
			else
			{
				correction = 1;
			};
		}
		else
		{
			correction = 0;
		};
	}
	else
	{
		if (textField.value.length < limit)
		{
			correction = -1;
		}
		else
		{
			correction = 0;
		};
	};
	
	infoField.innerHTML = 'Még ' + (limit - textField.value.length + correction) + ' karaktert írhatsz.';
	return ((textField.value.length < limit) || foundEnabledKey);
};

function showOpinions()
{
	var mainWindow = window.opener;
	mainWindow.location = 'index.php?display=Opinions';
	window.close();
};

function validateWritebackForm()
{
	var nameEmpty = (trim(document.getElementById('name').value) == '');
	var messageEmpty = (trim(document.getElementById('message').value) == '');
	var eMail = trim(document.getElementById('eMail').value);
	var eMailEmpty = (eMail == '');
	var eMailAcceptable = (!eMailEmpty && (eMail.indexOf('@') != -1) && (eMail.indexOf('.') != -1) && (eMail.indexOf('.', eMail.indexOf('@')) != -1) && (eMail.length > 5));
	if (nameEmpty || messageEmpty || eMailEmpty)
	{
		alert('Minden mezőt ki kell töltened.');
		return false;
	};
	if (!eMailAcceptable)
	{
		alert('A megadott e-mail cím nem tűnik valódinak.');
		return false;
	}
	return true;
};

function validateOpinionForm()
{
	var nameEmpty = (trim(document.getElementById('author').value) == '');
	var messageEmpty = (trim(document.getElementById('message').value) == '');
	var eMail = trim(document.getElementById('eMail').value);
	var eMailEmpty = (eMail == '');
	var eMailAcceptable = (eMailEmpty || ((eMail.indexOf('@') != -1) && (eMail.indexOf('.') != -1) && (eMail.indexOf('.', eMail.indexOf('@')) != -1) && (eMail.length > 5)));
	if (nameEmpty || messageEmpty)
	{
		alert('A név és a vélemény mezőket ki kell töltened, de használhatsz álnevet is.');
		return false;
	};
	if (!eMailAcceptable)
	{
		alert('A megadott e-mail cím nem tűnik valódinak.');
		return false;
	}
	return true;
};

function validateSubscribeForm()
{
	var eMail = trim(document.getElementById('eMail').value);
	var eMailEmpty = (eMail == '');
	var eMailAcceptable = (!eMailEmpty && (eMail.indexOf('@') != -1) && (eMail.indexOf('.') != -1) && (eMail.indexOf('.', eMail.indexOf('@')) != -1) && (eMail.length > 5));
	if (eMailEmpty)
	{
		alert('Muszáj megadnod egy e-mail címet, különben nem tudjuk hová küldjük a hírlevelet.');
		return false;
	};
	if (!eMailAcceptable)
	{
		alert('A megadott e-mail cím nem tűnik valódinak.');
		return false;
	}
	return true;
};

function validateUnsubscribeForm()
{
	var eMail = trim(document.getElementById('eMail').value);
	var eMailEmpty = (eMail == '');
	var eMailAcceptable = (!eMailEmpty && (eMail.indexOf('@') != -1) && (eMail.indexOf('.') != -1) && (eMail.indexOf('.', eMail.indexOf('@')) != -1) && (eMail.length > 5));
	if (eMailEmpty)
	{
		alert('Muszáj megadnod egy e-mail címet, különben nem tudjuk törölni a listáról.');
		return false;
	};
	if (!eMailAcceptable)
	{
		alert('A megadott e-mail cím nem tűnik valódinak.');
		return false;
	}
	return true;
};

function trim(str)
{
	return str.replace(/^\s\s*/, '').replace(/\s\s*$/, '');
}

