function checkValidation()
{
	var f = document.forms['insertform'];
	var ival = f['section[validation]'].options[f['section[validation]'].selectedIndex].value;
	if(ival > 0)
		f['section[invalid_text]'].disabled = false;
	else
		f['section[invalid_text]'].disabled = true;
}
function checkMinMax()
{
	var f = document.forms['insertform'];
	var ival = f['section[validation][type]'].options[f['section[validation][type]'].selectedIndex].value;
	if(ival == 1)
	{
		f['section[validation][min]'].disabled = false;
		f['section[validation][max]'].disabled = false;
	}
	else
	{
		f['section[validation][min]'].disabled = true;
		f['section[validation][max]'].disabled = true;
	}

	if(ival > 0)
		f['section[invalid_text]'].disabled = false;
	else
		f['section[invalid_text]'].disabled = true;
}
function addValue()
{
	var l = document.getElementById('value_list');
	var items = l.getElementsByTagName('li');

	var el_id = items.length;
	var el = newElement('li');

	// insert label
	var label = newElement('label',{htmlFor:'value_' + el_id});
	label.innerHTML = 'Value:';
	el.appendChild(label);

	// insert input
	var input = newElement('input',{type:'text',id:'value_'+el_id,name:'values[]',size:30});
	el.appendChild(input);
	el.appendChild(newElement('br'));

	// add the select box
	var select = getNextSelection(el_id);
	if(select)
	{
		// label for next selection
		var label = newElement('label',{htmlFor:'next_' + el_id});
		label.innerHTML = 'Next section:';
		el.appendChild(label);

		el.appendChild(select);
		el.appendChild(newElement('br'));
	}

	l.appendChild(el);
	return false;
}
function getNextSelection(el_id)
{
	// find the first select box
	var select = newElement('select',{name:'next[]',id:'next_'+el_id});
	var sel = document.getElementsByTagName('select');
	for(var f = 0; f < sel.length; ++f)
	{
		// only find multi-selects
		if(sel[f].name.substr(0,5) == 'next[')
		{
			var s = sel[f];
			for(var i = 0; i < s.childNodes.length; ++i)
			{
				var c = s.childNodes[i];
				if(c.tagName == 'OPTION')
				{
					var o = newElement('option',{value:c.value});
					o.innerHTML = c.innerHTML;
					select.appendChild(o);
				}
				else if(c.tagName == 'OPTGROUP')
				{
					var o = newElement('optgroup',{label:c.label});
					for(var j = 0; j < c.childNodes.length; ++j)
					{
						var cc = c.childNodes[j];
						if(cc.tagName == 'OPTION')
						{
							var o1 = newElement('option',{value:cc.value});
							o1.innerHTML = cc.innerHTML;
							o.appendChild(o1);
						}
					}
					select.appendChild(o);
				}
			}
			return select;
		}
	}
	return null; // not found
}
function showForm(ins)
{
	var f = document.forms['insertform'];
	var a = document.getElementById('addbutton');
	f.style.display='block';
	a.style.display='none';
	if(!isNaN(ins))
		f['before'].value=ins;
	else
		f['before'].value='';

	return false;
}

function checkForm(s)
{
	if(s.form['section[type]'].selectedIndex == 0)
	{
		window.alert('Please select the section type!');
		return false;
	}
	return true;
}

function newElement(type,attrib)
{
	try {
		var translate = {
			className: 'class',
			htmlFor: 'for'
		};
		var et = '<' + type;
		for(var f in attrib)
		{
			var f1 = eval('translate.' + f);
			if(!f1)
				f1 = f;
			et += ' ' + f1 + '="' + eval('attrib.' + f) + '"';
		}
		return document.createElement(et + '>');
	}
	catch(e) {
		var el = document.createElement(type);
		for(var f in attrib)
			eval('el.' + f + '=attrib.' + f);
		return el;
	}
}
