
var ns = (document.layers)? true:false;
var ie = (document.all)? true:false;
  
function getSelectionValue(aSelection) {

	return aSelection.options[aSelection.selectedIndex].value;
}


function setSelectionValue(aSelection, aValue) {
	
	for (var i = 0; i < aSelection.options.length; i++) {
		if (aSelection.options[i].value == aValue) {
			aSelection.selectedIndex = i;
			break;
		}
	}
}

function getMultSelectionValue(aMultSelection) {

	var s = '';
	
	for (var i = 0; i < aMultSelection.options.length; i++) {
		if (aMultSelection.options[i].selected) 
			s = s + aMultSelection.options[i].value + ',';
	}
	return s.replace(/,$/, '');
}


function setMultSelectionValue(aMultSelection, aValue) {
	
	if (aValue == '') return;
	var re = new RegExp('^(' + aValue.replace(/,/g, '|') + ')$', '');
	for (var i = 0; i < aMultSelection.options.length; i++) {
		if (re.test(aMultSelection.options[i].value)) 
			aMultSelection.options[i].selected = true;
	}
}

function unprefixed(aElt, aPrefix) {
        
        var rx = new RegExp('^' + aPrefix);
        
        return aElt.form.elements[aElt.name.replace(rx,'')];
}

function fixCheckBoxes(aForm) {

	var s = '';
	
	for (var i = 0; i < aForm.elements.length; i++) {
		var e = aForm.elements[i];
		if (e.type == 'checkbox' && e.name.search(/^mcb/) == 0) {
			for (s = ''; (g = aForm.elements[i]).name == e.name; i++)
				if (g.checked) s = s + g.value + ',';
			unprefixed(e, 'mcb').value = s.replace(/,$/, '');
		}
	}
	for (var i = 0; i < aForm.elements.length; i++) {
		var e = aForm.elements[i];
		if (e.type == 'checkbox' && e.name.search(/^scb/) == 0) {
			var s = unprefixed(e, 'scb');
			if (e.checked)
				s.value = e.value.replace(/[ ,-].*$/, '');
			else
				s.value = e.value.replace(/^.*[ ,-]/, '');
		}
	}
}


function fixText(aText) {
        unprefixed(aText, 'i').value = aText.value.replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/["]/g,'&quot;');
}

function fixSelection(aSelection) {

        var e = unprefixed(aSelection, 'i');
        
        if (aSelection.selectedIndex > 0) {
                e.value = getSelectionValue(aSelection);
        } else {
                e.value = '';
        }
}

function fixRadioButtons(aRadio) {

        unprefixed(aRadio, 'i').value = aRadio.value;
}

function selectTextPlus(aSelection) {

        if (aSelection.selectedIndex < 1) {
                aSelection.selectedIndex = 0;
        } else {
                aSelection.form[aSelection.name.replace(/^plus/,'')].value = getSelectionValue(aSelection);
        }
}

function validateSubmit(aForm) {

	return customValidateSubmit(aForm);
}

function customValidateSubmit(aForm) {

	return true;
}

function fieldValid(aLabel, aName, aRX, aFormat, aReq) {

        var rx = new RegExp(aRX);
        
	if (typeof(document.MainForm.elements[aName]) == 'object')
		var v = document.MainForm.elements[aName].value;
	else 
		return true;
                
        if (arguments.length < 5) {
                var aReq = true;
        }
		
	if (aReq && v == '') {
		alert('Field \"' + aLabel + '\" is required.');
		return false;
	}
	
	if ( arguments.length >= 4 && aRX != null && aFormat != null && v != '' && ! rx.test(v)) {
		alert('The value of \"' + aLabel + '\" does not match\n' 
		  + 'the required pattern: ' + aFormat);
		return false;
	} else 
		return true;
}

function fieldDepend(aLabel, aName, aDepLabel, aDepName) {
        if (document.MainForm.elements[aName].value != '' && 
                    document.MainForm.elements[aDepName].value == '') {
                alert('In case field \"' + aLabel + '\" is filled in,\n'
                  + 'field \"' + aDepLabel + '\" is required.');
                return false;
        } else
                return true;
}
