//jQuery.fn.extractQueryStringFromForm = function(options) {
//    $(this).each(function(i){
//        var m = $(this);
//		
//    })
//}

function extractQueryStringFromForm(form) {
	var ret = {};
    if (form) {
		// get the values of all contents of the form as a js map. Ported logic from dojo
		var exclude = "file|submit|image|reset|button|";
		for (n = 0; n < form.length; n++) {
			var item = form[n];
			var _in = item.name;
			var type = (item.type||"").toLowerCase();
			if(_in && type && exclude.indexOf(type) == -1 && !item.disabled){
				if(type == "radio" || type == "checkbox"){
					if(item.checked){ setValue(ret, _in, item.value); }
				}else if(item.multiple){
					ret[_in] = [];
					for (k = 0; k < item.length; k++) {
						opt = item[k];
						if(opt.selected){
							setValue(ret, _in, opt.value);
						}
					}
				}else{ 
					setValue(ret, _in, item.value);
					if(type == "image"){
						ret[_in+".x"] = ret[_in+".y"] = ret[_in].x = ret[_in].y = 0;
					}
				}
			}
		}
    }
	return ret; // Object
}

// copied from dojo
function setValue(obj, name, value){
	var val = obj[name];
	if(myIsString(val)){
		obj[name] = [val, value];
	}else if(myIsArray(val)){
		val.push(value);
	}else{
		obj[name] = value;
	}
}
myIsString = function(it){
	return !!arguments.length && it != null && (typeof it == "string" || it instanceof String); // Boolean
}
myIsArray = function(it){
	return it && (it instanceof Array || typeof it == "array"); // Boolean
}