function MM_findObj(n, d) { //v3.0
 var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document); return x;
}

function createForm(naam)  {
  	return MM_findObj(naam);
}

function formSubmit() {
    	dir = MM_findObj('direction');
    	dir.value = '1';
    
		formulier.submit();
}

function formBack() {
    dir = MM_findObj('direction');
    dir.value = '-1';
    
	formulier.submit();
}

function changeCheckedState(obj,objName,state) {
	if(obj!="") formulier.obj.checked = state;
	else {
		obj=MM_findObj(objName);
		if(!obj) return true;
		else obj.checked = state;
	}
}

function changeDependent() {
	/* aanroep vanuit twee checkboxen, parameters meegeven ! 
		als B dan A
		als !B dan niets
		als A dan niets
		als !A dan niets doen
		check welke aangeklikt wordt.
	*/
	return true;
}

function checkDouble() {
    // function walks through all ranking questions and validates them
    // if question has the required option set no empty fields are allowed
    // and in any case all numbers must be unique
    var i = 0, j = 0, name = '', elementArray, dbl, value;

    for (i=0; i<ranks.length; i++) {
        name = 'vraag[' + ranks[i].question + ']';
        elementArray = new Array();
        for (j=0; j<formulier.elements.length; j++)
            if (formulier.elements[j].name.indexOf(name) == 0)
                elementArray.push(formulier.elements[j]);

        dbl = new Array();
        for (j=0; j<elementArray.length; j++) {
            value = (client.ns4) ? elementArray[j].options[elementArray[j].selectedIndex] : elementArray[j].value;
            if (value != 0 && dbl[value]) {
                alert(ranks[i].error);
                return false;
            } else dbl[value] = true;
        }

        if (ranks[i].required) {
            for (j=0; j<elementArray.length; j++) {
                value = (client.ns4) ? elementArray[j].options[elementArray[j].selectedIndex] : elementArray[j].value;
                if (value == 0) {
                    alert('Het is bij vraag ' + ranks[i].question + ' verplicht alle velden in te vullen.');
                    return false;
                }
            }
        }
    }
    return true;
}

function makeUnique(question,exclude) {
    // function makes sure all dropdowns display a different number
    // if two (or more) have equal numbers, one stays at that value
    // whilst all others increase in value
    // if the maximum value is reached and still some are the same
    // the new value is set to empty
    var elementArray = new Array();
    var name, obj, value, number;
    var new_exclude = null;

    if (exclude == null) return true;
    if (exclude.name.indexOf(']') < 0) return true;
    number = parseInt(exclude.value);
    if (number == 0) return true;

    name = exclude.name.substring(0, exclude.name.indexOf(']') + 1);            // get all dropdowns that are
    for (var i=0; i<formulier.elements.length; i++)                             // in the same questiongroup as
        if (formulier.elements[i].name.indexOf(name) == 0)                      // the one clicked
            elementArray.push(formulier.elements[i].name);

    for (var i=0; i<elementArray.length; i++) {
        name = elementArray[i];
        obj = formulier.elements[name];
        value = (client.ns4) ? obj.options[obj.selectedIndex] : obj.value;      // get dropdown value

        if (value == number && obj != exclude && exclude != null) {             // if more than one the same
            if (new_exclude == null) new_exclude = obj;                         // remember first updated
            obj.selectedIndex = (obj.selectedIndex+1)%(elementArray.length+1);  // increase value
        }
    }

    if (number <= elementArray.length && new_exclude != null) {                 // if changes were made
        makeUnique(question, new_exclude);                                      // try also for the next number
    }
}