function valueToJSON(value){
	return Object.toJSON(value);
}
function JSONToValue(jsonStr){
	if(jsonStr==null || jsonStr=="null") return null;
	return jsonStr.evalJSON();
}
function serializeForm(form, withoutEmptyValues){
	var result={};
	var elements=form.getElements();
	for(var i=0; i<elements.length; i++){
		var element=elements[i];
		var key=element.name || element.id;
		var type=element.type.toLowerCase();
		var value=element.getValue();
		if(key && value!=null){
			if(value=="" || (type=="checkbox" && !element.checked) ){
				if(!withoutEmptyValues){
					eval("result."+key+"=value;");
				}
			}
			else{
				eval("result."+key+"=value;");
			}
		}
	}
	return result;
}
function setCheckboxChecked(checkbox, checked){
	checkbox.checked=checked;
	checkbox.setAttribute("checked",checked);
	checkbox.setAttribute("defaultChecked",checked);
}
function setFormCheckboxesChecked(form, checked){
	var elements=form.getElements();
	for(var i=0; i<elements.length; i++){
		var element=elements[i];
		var type=element.type.toLowerCase();
		if(type=="checkbox"){
			setCheckboxChecked(element, checked);
		}
	}
}