/**
 * DV20070730
 * returns values in form as array
 * use in combination with xajax library 
 * known bugs:
 * - does not handle multiselect or multicheckbox correctly
 * 
 * DV20080107 update
 * added array "detection" for php style array (ends with []). Is uploaded as a real array.
 * currently no support for hashes inside []
 *
 * @param string|obj frm_id
 * @return array
 */
// get formfield selection as array

function ul_fetch_form_fields_as_array( frm_id ) {
	// var o_frm = document.getElementById( frm_id );
	if ( typeof(frm_id) == 'object' ) {
		var o_frm = frm_id;
	} else {
		var o_frm = document.forms[frm_id];
	}
	
	var r = new Array();
	for (var i=0;i<o_frm.length;i++) {
		
		if (o_frm.elements[i].name!='') {
			
			switch(o_frm.elements[i].type) {
				case 'radio' :
				case 'checkbox' :
				
				if (o_frm.elements[i].checked) {
					
					var val = '' + o_frm.elements[i].value
					
					if ( o_frm.elements[i].name.match( /\[\]/ ) ) {
						// add as array
						var idxname = '' + o_frm.elements[i].name.replace( /\[\]/, '' );
						
						if ( r[idxname] == undefined )  {
							r[idxname] = new Array;
						}
						r[idxname].push( val );
						
						
					} else {
						// add as single value
						var idxname = '' + o_frm.elements[i].name;
						r[idxname] = '' + val;
					}
					
				}
				break;

				default :
				var val = '' + o_frm.elements[i].value;
				var idxname = '' + o_frm.elements[i].name;
				r[idxname] = val;
				
			}
		}

	}
	
	// extra for multipage select
	if( o_frm.checkmode ){
       	r['checkmode'] = 1 * o_frm.checkmode; 
    }
	
	return r;
}