var Form = {

  serialize_params : function(form_id) {
    var par = "";
    var form = document.forms[form_id];
    for ( i = 0; i < form.elements.length; i++ )
    {
      var el = form.elements[i];
      var na = ""+el.name;
      var val = ""+el.value;

      val = encodeURIComponent(val);

      if ( el.type == 'select-multiple' ) {
        val = [];
        for (var z=el.options.length-1; z >= 0;z--) {
          if (el.options[z].selected) {
                val =  el.options[z].value;
                par += el.name+'='+val+'&';
          }
        }
      } else {
        if ( val.length > 0 && na.length > 0 && (el.type != 'checkbox' && el.type != 'radio') ) {
          par += el.name+'='+val+'&';
        }
        if (( el.type == 'checkbox' ||  el.type == 'radio' ) && el.checked == true ) {
          par += el.name+'='+val+'&';
        }
      }
    }
    return par;
  },

  hash : function(form_id) {
    var h = {};
    var form = document.forms[form_id];
    for ( i = 0; i < form.elements.length; i++ )
    {
      var el = form.elements[i];
      var na = ""+el.name;
      var val = ""+el.value;

      if ( el.type == 'select-multiple' ) {
        val = [];
        for (var z=el.options.length-1; z >= 0;z--) {
          if (el.options[z].selected) {
		val[val.length] = el.options[z].value;
          }
        }
      }
      if ( val.length > 0 && na.length > 0 && (el.type != 'checkbox' && el.type != 'radio') ) {
        h[el.name]=val;
      }
      if (( el.type == 'checkbox' ||  el.type == 'radio' ) && el.checked == true ) {
        h[el.name]=val;
      }
    }

    return(h);
  },

  serialize_url : function(form_id) {
    var url = "";
    if ( document.forms[form_id].action != "" )
    {
      url = document.forms[form_id].action;
    } else {
      url = document.URL;
      if ( url.indexOf('?') > 0 )
      {
        url = url.substring(0,url.indexOf('?'));
      }
    }
    var params = Form.serialize_params(form_id);

    return(url+"?"+params);
  }
}




