
function selectOKVED(rootPrefix, formName, inputName, mode)
{
	var form = document.forms[formName];
	if (!form)
		return false;

	var input = form.elements[inputName];
	if (!input)
		return false;

	var width = 600;
	var height = 500;
	var left = (screen.width - width) / 2;
	var top = (screen.height - height) / 2;

	var sizes = 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top;

	window.okvedInput = input;
	window.open(rootPrefix + 'okved/okved.html' + (mode ? '?mode=' + mode : ''), null, sizes);
}

function okvedBuildCodeList(list)
{
	var codeList = new Array();

	var i;
	for (i = 0; i < list.options.length; i++)
		codeList[codeList.length] = list.options[i].value

	codeList.sort();
	return codeList.join(', ');
}

function okvedSaveSelected(list, openerWindow)
{
	var sourceInput = openerWindow.okvedInput;
	if (!sourceInput)
		return;

	sourceInput.value = okvedBuildCodeList(list);
}

function okvedLoadSelected(list, openerWindow)
{
	var sourceInput = openerWindow.okvedInput;
	if (!sourceInput || sourceInput.value.length == 0)
		return;

	var codes = sourceInput.value.split(/\s*,\s*/);

	okvedClearSelected(list);

	var i;
	for (i = 0; i < codes.length; i++)
		okvedSelectValue(list, codes[i]);
}

function okvedClearSelected(list)
{
	while (list.options.length)
		list.options.remove(0);
}

function okvedSelectCode(code, listId, listWindow)
{
	var list = listWindow.document.getElementById(listId);
	if (!list)
		return;

	okvedSelectValue(list, code);
}

function okvedSelectValue(list, code)
{
	var i;
	for (i = 0; i < list.options.length; i++)
		if (list.options[i].value == code)
			return;

	var option = document.createElement('option');
	list.options.add(option);

	option.innerText = code;
	option.value = code;
}

function okvedEnableOkButton(flag, frameWindow, buttonWindow, buttonId)
{
	if (!frameWindow.okvedOkButtonFlags)
		frameWindow.okvedOkButtonFlags = new Array();

	var i;
	var flagExists = false;
	for (i = 0; i < frameWindow.okvedOkButtonFlags.length; i++)
		if (frameWindow.okvedOkButtonFlags[i] == flag) {
			flagExists = true;
			break;
		}

	if (!flagExists)
		frameWindow.okvedOkButtonFlags[frameWindow.okvedOkButtonFlags.length] = flag;

	var listFlag = false;
	var buttonFlag = false;
	for (i = 0; i < frameWindow.okvedOkButtonFlags.length; i++) {
		var flagValue = frameWindow.okvedOkButtonFlags[i];
		switch (flagValue) {
		case 'list':
			listFlag = true;
			break;

		case 'button':
			buttonFlag = true;
			break;
		}
	}

	if (listFlag && buttonFlag) {
		var button = buttonWindow.document.getElementById(buttonId);
		if (!button)
			return;

		button.disabled = false;
	}
}

function okvedUpdateSelectedCtl(list, ctlWindow)
{
	var deleteBtn = ctlWindow.document.getElementById('okved-delete-button');
	deleteBtn.disabled = (list.selectedIndex == -1);

	var findBtn = ctlWindow.document.getElementById('okved-find-button');
	findBtn.disabled = (list.selectedIndex == -1);
}

function okvedDeleteCode(list)
{
	list.options.remove(list.selectedIndex);
}

function okvedFindCode(list, treeWindow, rootPrefix, mode)
{
	var code = list.options[list.selectedIndex].value;	
	var url = rootPrefix + 'okved/okved_find.html?code=' + code;

	if (mode == 'frontend')
		url = url + '&mode=' + mode;

	treeWindow.location.href = url;
}
