/*
 * Simple Query String plugin
 *
 * <strong>getSearchObj</strong>
 * Returns an Object with a key for each
 * query string parameter. An optional
 * DOM search object can be passed, if no
 * search is passed then window.location.search
 * is used. Called using
 * jQuery.astun.getSearchObj()
 *
 * <strong>addSearchParam</strong>
 * Adds a parameter to a query string.
 * Called using
 * jQuery.astun.addSearchParam(search, name, value)
 *
 */

(function($) {
  var obj = {
    getSearchObj: function(search) {
      search = (search === undefined) ? window.location.search : search;
      var qs = (search.length > 0) ? search.substring(1).split('&') : [];
      var hash = {}, parts, name;
      for (i = 0; i < qs.length; i++) {
	if (qs[i].length > 0) {
	    parts = qs[i].split('=');
	    name = parts[0];
	    if (!hash[name]) {
		hash[name] = []
	    }
	    hash[name].push(decodeURIComponent(parts[1]));
	}
      }
      return hash;
    },
    getSearchString: function(searchObj) {
	var qs = [];
	var values;
	for (var m in searchObj) {
	    values = searchObj[m];
	    for (var i = 0; i < values.length; i++) {
		qs.push(m + '=' + encodeURIComponent(values[i]));
	    }
	}
	return '?' + qs.join('&');
    }
  }
  if ($.astun) {
    $.extend($.astun, obj);
  } else {
    $.extend({astun: obj});
  }
})(jQuery);

