function Querystring(qs) { // optionally pass a querystring to parse
        this.params = new Object()
        this.get=Querystring_get
        if (qs == null)
            qs=location.search.substring(1,location.search.length)
        if (qs.length == 0) return
// Turn <plus> back to <space>
// See: http://www.w3.org/TR/REC-html40/interact/forms.html#h-17.13.4.1
        qs = qs.replace(/\+/g, ' ')
        var args = qs.split('&') // parse out name/value pairs separated via &
// split out each name=value pair
        for (var i=0;i<args.length;i++) {
                var value;
                var pair = args[i].split('=')
                var name = unescape(pair[0])

                if (pair.length == 2)
                        value = unescape(pair[1])
                else
                        value = name

                this.params[name] = value
        }
}

function Querystring_get(key, default_) {
        // This silly looking line changes UNDEFINED to NULL
        if (default_ == null) default_ = null;
        var value=this.params[key]
        if (value==null) value=default_;
        return value
}

function init_formParams() {
  var qs = new Querystring();
  if ( qs ) {
     var hiddenFields = document.getElementsByTagName('input');
     for ( i = 0; i<hiddenFields.length; i++ ) {
        if (hiddenFields[i].type == 'hidden') {
           if ( qs.params[hiddenFields[i].id] ) {
              if ( hiddenFields[i].value ==null || hiddenFields[i].value.length == 0) {
                 hiddenFields[i].value = qs.params[hiddenFields[i].id];
              } 
           }
        } 
     }
  }
}


if (window.attachEvent) { //attach load event
   window.attachEvent("onload",init_formParams);
}
else{
   window.addEventListener("load", init_formParams, true)
}
