/**
 * location.search汎用クラス
 */
function LocationSearch(source) {
  /* 初期化処理 */

  /* アイテム配列を追加 */
  var items = new Array();

  var from = 0, to = 0;
  var srch = source.substr(1);
  var nm, val;
      
  to = srch.indexOf('=', from); // 最初の'='を検索
  while (to >= 0) {
    // '='以前が変数名
    nm = srch.substring(from, to);
    from = to + 1;
    
    // 値を取り出す
    to = srch.indexOf('&', from); // 変数の区切りを検索
    if (to == -1) {
      // なければ最後まで
      to = srch.length + 1;
    }
    val = srch.substring(from, to);
    
    // 配列に格納
    items[nm] = val;
    
    // 次を検索
    from = to + 1;
    to = srch.indexOf('=', from);

  }
  
  /* 値取得関数 */
  this.item = function (varNm) {
    try {
      return items[varNm];  //あれば返す
    } catch(e) {
      return '';        //なければ空文字を返す
    }
  }
  
  /* 要素数取得関数 */
  this.length   = function () {
    return items.length;
  }

  /* アイテム配列取得関数 */
  this.getItems = function () {
    return items;
  }
}