function confirmRedirect(url, question)
{
	if(confirm(question)) {
		this.location.href=url;
	}
	else {
		return 0;
	}
}

function confirmSubmit(question, form)
{
	if(confirm(question)) {
		form.submit();
	}
	else {
		return 0;
	}
}

function redirect(url) {this.location.href=url;}

function set(target,form) { form.dispatch.value=target;}

function openWindowOrRedirect(url, redirect)
{
	if (redirect != null && redirect == true) {
        redirect(url);
    }
    else {
        window.open(url);
    }
}

function openWindow(form, property, winProps)
{
	var url = form[property];
	window.open(url.value, winProps);
}

function openPopup(url, extraWinProps)
{
    var baseProps = "toolbar=no,location=no,directories=no,status=no,menu=no,copyhistory=no,resizable=yes"
    var winProps = baseProps + "," + extraWinProps;
	window.open(url, "popup", winProps);
}

function getValue(form, property)
{
	return form[property].value;
}

function setValue(form, property, targetValue)
{
	return form[property].value = targetValue;
}

function addValue(form, property, targetValue, atStart, separator)
{
    var previousValue = getValue(form, property);

    var newValue;

    if (previousValue == null || previousValue.length == 0) {
        newValue = targetValue;
    } else if (atStart) {
        newValue = targetValue + separator + previousValue;
    } else {
        newValue = previousValue + separator + targetValue;
    }

    setValue(form, property, newValue);
}

function getValueSelect(form, property)
{
    var select = form.filtersList;
    var selectedOption = select.options[select.selectedIndex];

    return selectedOption.value;
}

function setFocus(fieldId)
{
    var fieldObj = null;
	if (document.getElementById) {
	    fieldObj = document.getElementById(fieldId);
	}
	else if (document.layers) {
	    fieldObj = document.layers[fieldId];
	}
	else if (document.all) {
	    fieldObj = document.all[fieldId];
	}

	if (fieldObj != null) {
	    fieldObj.focus();
	}
}

function setFirstFieldFocus() { setFocus("firstField"); }

function closeWindow()
{
    document.window.close();
}

function checkRegexp(form, regexp, check)
{
    var re = new RegExp(regexp);
    var elements = form.elements;
    for (i=0; i<elements.length; i++)
    {
        var element = elements[i];
        var name = element.name;
        if (name != null)
        {
            var m = re.exec(name);
            if (m != null) {
                var val = (check == null || check) ? true : false;
                if (element.checked != null) {
                    element.checked = val;
                }
            }
        }
    }
}

function isAllCheckedRegexp(form, regexp, min)
{
    var re = new RegExp(regexp);
    var elements = form.elements;
    var allChecked = false;
    var items = 0;

    for (i=0; i<elements.length; i++)
    {
        var element = elements[i];
        var name = element.name;
        if (name != null)
        {
            var m = re.exec(name);
            if (m != null) {
                allChecked = true;
                items++;
                if (element.checked == null || element.checked == false) {
                    return false;
                }
            }
        }
    }

    return (allChecked && (min == null || items >= min));
}
