 function popup(url,win,w,h)
 {
	// window.onbeforeunload = null;
 	var winl = (screen.width - w) / 2;
	var wint = (screen.width - h) / 2;
	prop = 'height='+h+',width='+w+',top=100,left='+winl+',scrollbars=yes,resizable=no,toolbar=no,location=no,status'
 	Window = window.open(url,win,prop);
	Window.focus()	// making sure that the window will be focused in case someone minimalized it and then clicked on a link that popped it open again
 }

 function newCaptcha()
 {
	var d = new Date();
	document.getElementById('captchaImage').src = WEBSITE_HROOT+'/_assets/images/code.php?'+d.getTime();
 }

/*
 categories = [];
 categories[1] = [];
 categories[1][3] = 'Werkwoord';
 categories[1][4] = 'Zelfstandig Naamwoord';
 categories[2] = [];
 categories[2][1] = 'Verb';
 categories[2][2] = 'Noun';

 function loadCategories()
 {
	var langID = document.getElementById('languageID').value;
	var el = document.getElementById('type');
	var arr = categories[langID];

	el.options.length = 0;
	var j = 0;
	for (var i in arr)
	{
		el[j++] = new Option(arr[i], i);
	}
 }
*/

 curDetailsDiv = false;
 function showDetails()
 {
	var elCat	= document.getElementById('type');
	var iCat	= elCat.selectedIndex;
	var catOptionName	= elCat.options[iCat].text;
	var catOptionValue	= elCat.options[iCat].value;

	var elLang	= document.getElementById('languageID');
	var iLang	= elLang.selectedIndex;
	var langOptionName	= elLang.options[iLang].text;
	var langOptionValue	= elLang.options[iLang].value;

	if (curDetailsDiv)
		curDetailsDiv.style.display = 'none';
	if (curDetailsDiv = document.getElementById(langOptionName+'_'+catOptionName))
	{
		curDetailsDiv.style.display = '';
	}
 }

function applyType()
{
	var langId = document.getElementById('languageID').value;
	var word = document.getElementById('Word').value;
	var typeId = document.getElementById('type').value;
	var WB = new WordEnding(langId, word);
	var endings = WB.getEndings(typeId);
	if (endings.length > 0)
	{
		for (var j in endings)
		{
			if (endings[j]['fill'].length > 0)
				document.getElementById(langId+'_'+j).value = endings[j]['fill'];
			else
			{
				document.getElementById(langId+'_'+j).value = endings[j]['pre']+WB.wordBase+endings[j]['end'];
				if (endings[j]['regex'].length > 0)
				{
					breakFor = false;
					for (var r=0; r<endings[j]['regex'].length; r++)
					{
						/*
						if (endings[j]['regex'][r]['preSearch'].length > 0)
						{
							var search = new RegExp(endings[j]['regex'][r]['preSearch']);
							var replace = endings[j]['regex'][r]['preReplace'];
							if (applyRegex(document.getElementById(langId+'_'+j), search, replace)) {
								var breakFor = true;
							}
						}
						if (endings[j]['regex'][r]['postSearch'].length > 0)
						{
							var search = new RegExp(endings[j]['regex'][r]['postSearch']);
							var replace = endings[j]['regex'][r]['postReplace'];
							if (applyRegex(document.getElementById(langId+'_'+j), search, replace)) {
								var breakFor = true;
							}
						}
						if (breakFor)
							break;
						*/
						if (endings[j]['regex'][r]['search'].length > 0)
						{
							var search = new RegExp(endings[j]['regex'][r]['search']);
							var replace = endings[j]['regex'][r]['replace'];
							if (applyRegex(document.getElementById(langId+'_'+j), search, replace)) {
								var breakFor = true;
							}
						}
					}
				}
			}
		}
	}
}

function applyRegex(el, search, replace)
{
	var matches = el.value.match(search);
	if (matches && matches.length > 0)
	{
		for (var i in matches)
		{
			var s = new RegExp('$'+i);
			replace = replace.replace(s, matches[i]);
		}
		el.value = el.value.replace(search, replace);
		return true;
	}
}
