function ibeGoogle(id, url, domain, source, entrytype, campaing) {
  if (typeof _gat != 'undefined') {
    var pageTracker = _gat._getTracker(id);
    pageTracker._addOrganic("ibe", "toCityCode");

    var tup = domain + '/' + source + '/' + entrytype + '/' + campaing;
    pageTracker._initData();
    var u;
    var ef = document.forms ? document.forms.error_page_form : null;
    if (ef && ef.error_code && ef.error_code.value) {
      u = 'error/' + ef.error_code.value;
    } else {
      if (url && url.length > 0 && url != 'null') {
        u = url;
      }
    }

    if (!u) u = document.location.href;

    var isSame = ibeGoogleIsSame(tup);

    pageTracker._trackPageview(u);
  }
}
// Url, Key, Value
function add2Url(u, k, v) {
  if (v && v != 'null' && v != null && v.length > 0) {
    if (u.indexOf(k) > 0 && u.indexOf(k + '=') < u.indexOf(v)) {
      return u;
    }
    var sep = '?';
    if (u.indexOf('?') > 0) {
      sep = '&';
    }
    return u + sep + k + '=' + v;
  }
  return u;
}

// Url
function stripHostAndHash(u) {
  var i = u.indexOf('://');
  if (i > 0) {
    var x = u.indexOf('/', i + 4);
    if (x > i) {
      u = u.substring(x);
    } else {
      u = u.substring(i + 3);
    }
  }
  i = u.lastIndexOf('#');
  if (i > 0) {
    u = u.substring(0, i);
  }
  return u;
}

function ibeGoogleIsSame(tup) {
  var key = 'IBEGA';
  var prev = ibeGoogleGetCokie(key);
  // alert(key + '\n\n' + tup + '\n\n' + prev);
  if (prev && prev == tup) {
    return true;
  }
  var d = new Date();
  d.setTime(d.getTime() + (1000 * 60 * 60 * 24));
  var toSet = key + '=' + tup + '; expires=' + d.toGMTString() + '; path=/';
  document.cookie = toSet;
  return false;
}

function ibeGoogleGetCokie(key) {
  var c = document.cookie.split(';');
  var ret;
  for (var i = 0; i < c.length; i++) {
    var cc = c[i].split('=');
    if (cc.length > 1) {
      var _key = cc[0].replace(' ', '');
      if (_key == key) {
        ret = cc[1];
        break;
      }
    }
  }
  return ret;
}