var formUtil = {

	formId: null,
  queryString: "",
	qsArray: null,

	init: function(formId) {
		this.formId = formId;
		this.queryString = window.location.search.substring(1);
		this.qsArray = this.queryStringToArray(this.queryString);
	},
  
  populate: function() {
		var elmts = document.getElementById(this.formId).elements;
		for(var i=0; i<elmts.length; i++) {
			this.setElmtValue(elmts[i], this.qsArray[elmts[i].name]);
		}
  },

	setElmtValue: function(elmt, fieldValue) {
		if (!elmt.name || !fieldValue) return;
		switch(elmt.type) {
			case "select-multiple":
				this.assignMultiSelectValues(elmt, fieldValue);
				break;
			case "checkbox":
				this.assignMultiCheckboxValues(elmt, fieldValue);
				break;
      case "radio":
				this.assignRadioValue(elmt, fieldValue);
        break;
			case "button":
				break;
			default:
				elmt.value = unescape(fieldValue);
				break;
		}
	},

	setFormValue: function(elmtName) {
		var elmt = this.getElmt(elmtName);
		var fieldValue = this.getFormValue(elmtName);
		if (!elmt || !fieldValue) return;
		this.setElmtValue(elmt, fieldValue);
	},

	getFormValue: function(fieldName) {
		return this.qsArray[fieldName];
	},

	getElmt: function(fieldName) {
		var elmts = document.getElementById(this.formId).elements;
		for(var i=0; i<elmts.length; i++) {
			if (elmts[i].name == fieldName)
				return elmts[i];
		}
		return null;
	},
  
  assignMultiSelectValues: function(elmt, values) {
		var valArr = values.split(",");
		for (var i=0; i<elmt.options.length; i++) {
			elmt.options[i].selected = false;
			for (var j=0; j<valArr.length; j++) {
				if (elmt.options[i].value == unescape(valArr[j]))
					elmt.options[i].selected = true;
			}
		}
  },
  
  assignMultiCheckboxValues: function(elmt, values) {
		var valArr = values.split(",");
		elmt.checked = false;
		for(var i=0; i<valArr.length; i++) {
			if (elmt.value == unescape(valArr[i]))
				elmt.checked = true;
		}
  },
  
  assignRadioValue: function(elmt, value) {
    if (elmt.value == value) {
      elmt.checked = true;
    }
  },

	queryStringToArray: function(queryString) {
		var ret = new Array();
		var pairs = queryString.split("&");
		for (i in pairs)
		{
			var keyval = pairs[i].split("=");
			ret[ keyval[0] ] = keyval[1];
		}
		return ret;
  }	

}
