//browser check : variables top.NS4 and top.DOM.
if( navigator.appName=="Netscape" && navigator.appVersion.indexOf( "4." ) >=0 ) {
  top.NS4=true;
  top.DOM=false;
} else {
  top.NS4=false;
  top.DOM=true;
}

// finds a form by its name
function getFormByName (formname) {
	if (top.NS4) {
		for( var i=0; i<window.document.layers.length; i++ ) {
			var doc=window.document.layers[i].document;
			for( var j=0; j<doc.forms.length; j++ ) {
				var f=doc.forms[j];
				if( f.name==formname ) return( f );
			}
		}
	} else {
		for( var i=0; i<window.document.forms.length; i++ ) {
			var f=window.document.forms[i];
			if( f.name==formname ) {
				return( f );
			}
		}
	}
	return( null );
}

// reads the content of a form element of type radio, checkbox, text, hidden, textarea, select
function getSingleInputValue (obj, use_default) {
	switch(obj.type) {
	case 'radio':
	case 'checkbox':
		return(((use_default)?obj.defaultChecked:obj.checked)?obj.value:null);
	case 'text':
	case 'hidden':
	case 'textarea':
		return((use_default)?obj.defaultValue:obj.value);
	case 'password': return((use_default)?null:obj.value);
	case 'select-one':
		if(obj.options==null) {return null;}
		if(use_default) {
			var o=obj.options;
			for(var i=0;i<o.length;i++) {
				if(o[i].defaultSelected) {
					return o[i].value;
				}
			}
			return o[0].value;
		}
		if(obj.selectedIndex<0) {
			return null;
		}
		return(obj.options.length>0)?obj.options[obj.selectedIndex].value:null;
	case 'select-multiple':
		if(obj.options==null) {
			return null;
		}
		var values=new Array();
		for(var i=0;i<obj.options.length;i++) {
			if((use_default&&obj.options[i].defaultSelected)||(!use_default&&obj.options[i].selected)) {
				values[values.length]=obj.options[i].value;
			}
		}
		return(values.length==0)?null:values;
	}
	//alert("FATAL ERROR: Field type "+obj.type+" is not supported for this function");
	return null;
}
// creates in the document a hidden form named hiddenformname, by copying the data of the form formname
function createsHiddenForm(formname,cmdvar) {
//alert('createsHiddenForm: ' + cmdvar);
	var id = (document.ui_id==null?"":document.ui_id);

	source_form = getFormByName (formname);
	// if form is found, creates a hidden form with all its values and posts it
	if(!source_form) return null;

	var sent_form = window.document.createElement("form");
	sent_form.name = 'hidden_form';
	sent_form.method="post";
	sent_form.enctype="multipart/form-data";
	sent_form.action = 'uiprocessor/uiprocessor.php';

	for(var i=0;i<source_form.elements.length;i++) {
		var valueThisElem = getSingleInputValue(source_form.elements[i], false);
		if(valueThisElem) {
			var newElem = window.document.createElement("input");
			newElem.type = "hidden";
			newElem.name = source_form.elements[i].name;
			newElem.id = source_form.elements[i].id;
			// the value
			newElem.value = getSingleInputValue(source_form.elements[i], false);
			sent_form.appendChild(newElem);
		}
	}

	// adds the name of the calling page as a posted var
	var newElem = window.document.createElement("input");
	newElem.type = "hidden";
	newElem.name = "page_name";
	newElem.id = "page_name";
	// the page name
	var sPath = window.location.pathname;
	newElem.value = sPath.substring(sPath.lastIndexOf('/') + 1);
	sent_form.appendChild(newElem);

	// sets the cmd var
	var newElem = window.document.createElement("input");
	newElem.type = "hidden";
	newElem.name = "cmd";
	newElem.id = "cmd";
	newElem.value = cmdvar;
	sent_form.appendChild(newElem);

	// sets the ui id
	if(id!='') {
		var newElem = window.document.createElement("input");
		newElem.type = "hidden";
		newElem.name = "ui_id";
		newElem.id = "ui_id";
		newElem.value = id;
		sent_form.appendChild(newElem);
	}

	return(sent_form);
}

// builds a hidden form with the data necessary to retrieve previous ui,
// and posts it to uiprocessor.php.
// formname is the name of the original form in the page
// action is the php script to which the data are posted.
// cmdvar is the value of the additional hidden field posted to "action" server script
function sendCommand(formname,cmdvar) {
//alert('sendCommand: ' + cmdvar);
	// creates hidden form
	var sent_form = createsHiddenForm(formname,cmdvar);

	// posts the form
	document.body.appendChild(sent_form);
// alert('sent cmd: ' + sent_form.cmd.value + ' to ' + sent_form.action);
	sent_form.submit();

	return;
}

// builds a hidden form with the data necessary to retrieve previous ui,
// and posts it to processuserdata.php.
// formname is the name of the original form in the page
// action is the php script to which the data are posted.
// cmdvar is the value of the additional hidden field posted to "action" server script
function ccMenuChange(formname,askedMenu) {
	// creates hidden form
	var sent_form = createsHiddenForm(formname,'ccMenuChange');
	// adds the asked menu
	var newElem = window.document.createElement("input");
	newElem.type = "hidden";
	newElem.name = "askedMenu";
	newElem.id = "askedMenu";
	newElem.value = askedMenu;
	sent_form.appendChild(newElem);

	// posts the form
	document.body.appendChild(sent_form);
	sent_form.submit();

	return;
}

// builds a hidden form with the data necessary to retrieve previous ui,
// and posts it to processuserdata.php.
function previous() {
	// creates hidden form
	var sent_form = window.document.createElement("form");

	var id = (document.ui_id==null?"":document.ui_id);

	sent_form.name = "hidden_form";
	sent_form.method="post";
	sent_form.enctype="multipart/form-data";
	sent_form.action = 'uiprocessor/uiprocessor.php';

	// adds the name of the calling page
	var newElem = window.document.createElement("input");
	newElem.type = "hidden";
	newElem.name = "page_name";
	newElem.id = "page_name";
	// the page name
	var sPath = window.location.pathname;
	newElem.value = sPath.substring(sPath.lastIndexOf('/') + 1);
	sent_form.appendChild(newElem);

	// sets the cmd var
	var newElem = window.document.createElement("input");
	newElem.type = "hidden";
	newElem.name = "cmd";
	newElem.id = "cmd";
	newElem.value = "previous_ui";
	sent_form.appendChild(newElem);

	// sets the ui id
	if(id!='') {
		var newElem = window.document.createElement("input");
		newElem.type = "hidden";
		newElem.name = "ui_id";
		newElem.id = "ui_id";
		newElem.value = id;
		sent_form.appendChild(newElem);
	}

	// posts the form
	document.body.appendChild(sent_form);
	sent_form.submit();

	return;
}