function ge() {
  var ea;
  for (var i = 0; i < arguments.length; i++) {
    var e = arguments[i];
    if (typeof e == 'string')
      e = document.getElementById(e);
    if (arguments.length == 1)
      return e;
    if (!ea)
      ea = new Array();
    ea.push(e);
  }
  return ea;
}

function getStyle(elem, name, force) {
  if (force === undefined) force = true;
  if (!force) {
    return elem.style[name];
  }
  if (name == "width" || name == "height") {
    return getSize(elem, true)[({'width':0, 'height':1})[name]] + 'px';
  }
  var ret, defaultView = document.defaultView || window;
  if (defaultView.getComputedStyle) {
    name = name.replace( /([A-Z])/g, "-$1" ).toLowerCase();
    var computedStyle = defaultView.getComputedStyle( elem, null );
      if (computedStyle)
        ret = computedStyle.getPropertyValue(name);
  } else if (elem.currentStyle) {
    if (name == 'opacity' && browser.msie) {
      var filter = elem.currentStyle['filter'];
      return filter && filter.indexOf("opacity=") >= 0 ?
        (parseFloat(filter.match(/opacity=([^)]*)/)[1] ) / 100) + '' : '1';
    }
    var camelCase = name.replace(/\-(\w)/g, function(all, letter){
      return letter.toUpperCase();
    });
    ret = elem.currentStyle[name] || elem.currentStyle[camelCase];
    // If we're not dealing with a regular pixel number
    // but a number that has a weird ending, we need to convert it to pixels
    if ( !/^\d+(px)?$/i.test( ret ) && /^\d/.test( ret ) ) {
      // Remember the original values
      var left = style.left, rsLeft = elem.runtimeStyle.left;

      // Put in the new values to get a computed value out
      elem.runtimeStyle.left = elem.currentStyle.left;
      style.left = ret || 0;
      ret = style.pixelLeft + "px";

      // Revert the changed values
      style.left = left;
      elem.runtimeStyle.left = rsLeft;
    }
  }
  return ret;
}

function now() { return +new Date; }

var expand = "VK" + now(), vk_uuid = 0, vk_cache = {};

function data(elem, name, data) {
  var id = elem[ expand ], undefined;
  if ( !id )
    id = elem[ expand ] = ++vk_uuid;
  if (name && !vk_cache[id])
    vk_cache[id] = {};
  if (data !== undefined)
    vk_cache[id][name] = data;
  return name ?
    vk_cache[id][name] :
    id;
}

function show(elem) {
  if (arguments.length > 1) {
    for (var i = 0; i < arguments.length; i++) {
      show(arguments[i]);
    }
    return;
  }
  elem = ge(elem);
  if (!elem) return;
  var old = data(elem, "olddisplay");
  elem.style.display = old || "";

  if (getStyle(elem, 'display') == "none" ) {
    if (elem.tagName.toLowerCase() == 'tr' && !browser.msie) {
      elem.style.display = 'table-row';
    } else {
      elem.style.display = data(elem, "olddisplay", "block");
    }
  }
}

function hide(elem){
  if (arguments.length > 1) {
    for (var i = 0; i < arguments.length; i++) {
      hide(arguments[i]);
    }
    return;
  }
  elem = ge(elem);
  if (!elem) return;
  if (getStyle(elem, 'display') != "none")
    data(elem, "olddisplay", elem.style.display);
  elem.style.display = "none";
}

var qCur = 0, qd = 0, qa = 0, qOn = 0, sOn = 0, qfOn = 0;
var qArr = [
[0,'по людям', '', 'people'],[1,'по группам', '', 'groups'],[2,'по кличке','','nick'],[3,'по породам','','poroda'],[4,'по питомникам','','ul/1'],
[5,'по приютам','','ul/2'],[6,'по клубам','','ul/3'],[7,'по гостиницам','','ul/5'],[8,'по зоомагазинам','','ul/4']];

function showQDrop() {
 if (qd) {hideQDrop(qCur);return;}
 genQDrop();
 qd = 1; qa = 1;
 ge('qdrop').className = 'qdrop_on';
 ge('qdropdown').style.display = 'block';
 ge('qinput').focus();
}

function hideQDrop(i) {
 qOn = 0; qCur = i; qd = 0;
 if (ge('qdrop')) {
  ge('qdrop').innerHTML = qArr[i][1];
  ge('qdrop').className = 'qdrop_off';
  ge('qdropdown').style.display = 'none';
 }
 if (sOn) ge('qinput').focus();
}

function startHide() {
 if (qOn) return;
 hideQDrop(qCur);
}

function searchOn(obj) {
 sOn = 1;
 var ph = obj.getAttribute('placeholder');
 if (obj.value && obj.value != ph) {return;}
 hide('topNav');
 $('#qquery').width(618);
 obj.style.width = '448px'
 ge('quickSearch').style.width = '625px';
 obj.value = ''; var qs = qd ? 'qdrop_on' : 'qdrop_off';
 ge('qchoose').innerHTML = "<div onclick=\"showQDrop()\" id='qdrop' class='"+qs+"' onmouseover=\"qOn = 1;if (!qd) {this.className='qdrop_over'}\" onmouseout=\"setTimeout('startHide()',1200); qOn = 0;if (!qd) {this.className='qdrop_off'}\">"+qArr[qCur][1]+"</div>";
 genQDrop();
 obj.style.color = '#000'; if (!qa) showQDrop();
}

function genQDrop() {
 var str = '', qoff, qover, st = '';
 for (var i = 0; i < qArr.length; i++) {
  if (i == qArr.length-1) {st = "style='border-bottom: 1px solid ";if (i!=qCur){st+="#2A5883;'";}else{st+="#839EB7;'";}} else {st='';}
  if (i != qCur) {qoff = 'qdiv_off', qover = 'qdiv_over'; if (!i) {qover='qdiv_over_top';}} else {qoff = 'qdiv_on', qover = 'qdiv_on';}
  str += "<div onclick='hideQDrop("+i+")' class='"+qoff+"' onmouseover=\"qOn = 1; this.className='"+qover+"'\" onmouseout=\"setTimeout('startHide()',1200); qOn = 0; this.className='"+qoff+"'\" "+st+">"+qArr[i][1]+"</div>";
 }
 ge('qdropdown').innerHTML = str;
}

function searchOut(qi) {
 if (qOn || qfOn) {return;}
 sOn = 0;
 var ph = qi.getAttribute('placeholder');
 if (qi.value && qi.value != ph) {return;}
 ge('qchoose').innerHTML = "";
 var qq = ge('qquery');
 qi.style.color = '#777';
 qi.style.width = '85px';
 qq.style.width = '105px';
 ge('quickSearch').style.width = '112px';
 qi.value = ph; qa = 0; qd = 0;
 var qd = ge('qdropdown');
 qd.style.display = 'none';
}

function friendNav(k) {
  if (k == 38) {
   if (qd) {if (qCur > 0) {qCur = qCur - 1} else {qCur = qArr.length-1} genQDrop(); return true}
   return true;
  }
  if (k == 40) {
   if (qd) {if (qCur < qArr.length-1) {qCur = qCur + 1} else {qCur = 0} genQDrop(); return true}
   return true;
  }
  if (k == 13) {
   if (qd) {hideQDrop(qCur); return true;}
   qDoSearch();
   return false;
  }
  return true;
}

function qDoSearch() {
 var qi = ge('qinput');
 var ph = qi.getAttribute('placeholder');
 if (!qi.value || qi.value == ph) {return;}
 window.location = base_domain+'search/'+qArr[qCur][3]+'/?q='+qi.value;
}

