	function getInjectObject(param, id, url) {
		if(!id) return;
		if(url == null) url = "/";
		$.get(
			url,
			param,
			function(data){
				$("div#" + id).html(data);
			}
			);
	}

	function getObj(objName) {
		return document.getElementById(objName);
	}
	
	/* form serializer --------------------------------------------------------------------*/
	function formToJSON(formID) {
		var f = document.getElementById(formID);
		var s = "{";
		for (i=0; i < f.elements.length; i++) {
			elm = f.elements[i];
			var n = elm.name;
			var t = elm.type;
			if ( !n || elm.disabled || t == 'reset' ||
				(t == 'checkbox' || t == 'radio') && !elm.checked ||
				(t == 'submit' || t == 'image' || t == 'button') && elm.form.clicked != elm ||
				elm.tagName.toLowerCase() == 'select' && elm.selectedIndex == -1)
				continue;
			if (t == 'image' && elm.form.clicked_x) {
				s = s + ( encodeURIComponent(n+'_x') + ": " + encodeURIComponent( elm.form.clicked_x ) ) + ", ";
				s = s + ( encodeURIComponent(n+'_y') + ": " + encodeURIComponent( elm.form.clicked_y ) ) + ", ";
				continue;
			}
			// todo: add select-multiple type handling
			
			s = s + ( encodeURIComponent(n) + ": " + encodeURIComponent( elm.value ) ) + ", ";
		}
		s = s.replace(/,\s$/, '') ;
		s = s + "}";
		return eval("(" + s + ")");
	}
