
function getById(id) {
if (id && document.getElementById(id)) return document.getElementById(id);
}
cat = function(){
 _cat_area  = getById('cat_area');
 _cat_table = getById('cat_table');
 _cat_left  = getById('cat_left');
 _cat_right = getById('cat_right');
 _cat_old_link_id="";
 _cat       = getById('cat');
 _cat_sm_x  = 0;
 _cat_x_start = 0;
 _cat_x_end   = 0;
 _cat_go      = 0;
 if ((screen.width > 1024)) _cat_num_row_view  = 6; else _cat_num_row_view  = 5;
 _cat_row_width = 0;
}


cat.callback = function(){
 if (_cat_req.readyState == 4) {
  if (_cat_req.status == 200) {
   getById('cat_list').innerHTML = _cat_req.responseText;
  }
 }
}

cat.inRight = function() {
 _cat_sm_x--;
}

cat.inLeft = function() {
 _cat_sm_x++;
}

cat.calc = function() {
      _cat_row_width = parseInt(_cat_area.offsetWidth/_cat_num_row_view);
      for (var _cat_list_div = getById('cat_list').getElementsByTagName('div'), i = 0; i < _cat_list_div.length; i++) {
          _cat_list_div[i].style.width = _cat_row_width+"px";
      }
     _cat_x_start = parseInt(_cat_table.style.left) || 0;
     _cat_x_end   = _cat_row_width * _cat_sm_x;
     _cat_go      = Math.ceil((_cat_x_start + _cat_x_end)/2);
     _cat_table.style.left = _cat_go+"px";


     if (_cat_sm_x == 0) {
        _cat_left.style.visibility = "hidden";
     } else  {
        _cat_left.style.visibility = "visible";
     }

     if (_cat_list_div.length-_cat_num_row_view == _cat_sm_x * -1) {
        _cat_right.style.visibility = "hidden";
     } else  {
        _cat_right.style.visibility = "visible";
     }

setTimeout("cat.calc()", 1);
}

xmlHttp = function() {

}


xmlHttp.create = function(){
if (window.XMLHttpRequest) {
var oXmlHttp = new XMLHttpRequest();
return oXmlHttp;
} else {
var aVersions = ["Msxml2.XMLHTTP", "Microsoft.XMLHTTP", "MSXML2.XMLHttp.4.0", "MSXML2.XMLHttp.3.0", "MSXML2.XMLHttp", "Microsoft.XMLHttp", "Msxml2.XMLHTTP", "Microsoft.XMLHTTP"];
for (var i = 0; i < aVersions.length; i++) {
try {
var oXmlHttp = new ActiveXObject(aVersions[i]);
return oXmlHttp;
} catch (oError) {
//Do nothing
}
}
throw new Error("MSXML is not installed.");
}
}


wnd = function(){
_wnd         = getById('wnd');
_wnd_sm_y    = 0;
_wnd_x_start = 0;
_wnd_x_end   = 0;
_wnd_go      = 0;
_wnd_num_row_view  = 0;
_wnd_row_height = 0;
_wnd_num_row = 0;
hiddenImage('wnd');
}

wnd.list = function() {
}
wnd.dmenu = function() {
}
wnd.view = function() {
}
wnd.faq = function() {
}

wnd.faq.callback = function() {
if (_req.readyState == 4) {
if (_req.status == 200) {
if (getById('cat_old_link_id')) getById('cat_old_link_id').id = "";
_cat_old_link_id.id = "cat_old_link_id";

popupOut('wnd');
setTimeout("wnd.mainTo(parseInt(185))", 1000);
setTimeout("_wnd.innerHTML = _req.responseText;", 1200);
setTimeout("wnd.format();", 1300);
setTimeout("popupOver('wnd')", 1300);
}
}
}


wnd.go = function(_this) {
_req = new xmlHttp.create();
_req.onreadystatechange = wnd.list.callback;
_req.open("GET", '/ajax/index.php?url='+_this.value+'&r'+Math.random(), true);
_req.send(null);
}

wnd.open = function(_this) {
_cat_old_link_id = _this;
_req = new xmlHttp.create();
if (_this.id == 'dm') {
_req.onreadystatechange = wnd.dmenu.callback;
} else if (_this.id == 'v') {
_req.onreadystatechange = wnd.view.callback;
} else if (_this.id == 'f') {
_req.onreadystatechange = wnd.faq.callback;
} else if (_this.id == 'n') {
_req.onreadystatechange = wnd.faq.callback;
} else {
_req.onreadystatechange = wnd.list.callback;
}

_req.open("GET", '/ajax/index.php?url='+_this.href+'&r'+Math.random(), true);
_req.send(null);
}


wnd.arrow = function() {
if (getById('wnd_top') && getById('wnd_btm')) {
if ((_wnd_sm_y == 0) || (_wnd_num_row == 0)) {
_wnd_top.style.visibility= "hidden";
} else  {
_wnd_top.style.visibility = "";
}
if ((_wnd_sm_y - _wnd_num_row_view == _wnd_num_row * -1) || ((_wnd_num_row < 2))) {
_wnd_btm.style.visibility= "hidden";
} else  {
_wnd_btm.style.visibility = "";
}

}
}




wnd.list.calc = function() {
if (_wnd_list = getById('wnd_list')) {
_wnd_x_start = parseInt(_wnd_list.style.top) || 0;
_wnd_x_end   = _wnd_sm_y * _wnd_row_height;
go  = Math.ceil((_wnd_x_start + _wnd_x_end) / 2);
_wnd_list.style.top = go;
}
setTimeout("wnd.list.calc()", 1);
}



wnd.format = function(){
_wnd.style.height   = _cat.offsetTop - 240 + "px";
_wnd.style.top      = "210px";
_wnd_num_row        = 0;
if (getById('wnd_top')) _wnd_top     = getById('wnd_top');
if (getById('wnd_btm')) _wnd_btm     = getById('wnd_btm');
if (_wnd_list = getById('wnd_list')) {
_wnd_sm_y    = 0;
_wnd_list.style.top = "0px";
_wnd_area = getById('wnd_area');
if (getById('dmenu')) _dmenu_offsetHeight = getById('dmenu').offsetHeight;  else _dmenu_offsetHeight = 0;
_wnd_area.style.height = _wnd.offsetHeight  - getById('litera').offsetHeight - _dmenu_offsetHeight - 50 + "px";
_wnd_num_row_view = Math.ceil( parseInt(_wnd_area.style.height) / 200);
_wnd_row_height = parseInt(_wnd_area.style.height) / parseInt(_wnd_num_row_view);
for (var _wnd_list_div = getById('wnd_list').getElementsByTagName('TABLE'), i = 0; i < _wnd_list_div.length; i++) {
_wnd_list_div[i].style.height = _wnd_row_height-2+"px";
}
_wnd_num_row = _wnd_list_div.length;
if (_wnd_num_row_view > _wnd_num_row) {
_wnd_num_row_view = _wnd_num_row;
}
}
wnd.arrow();
}



wnd.view.callback = function() {
if (_req.readyState == 4) {
if (_req.status == 200) {
if (_opacity['wnd'] <= 10) popupOver('wnd');
_wnd.innerHTML = _req.responseText;
wnd.format();
setTimeout("wnd.mainTo(parseInt(185))", 1);
}
}
}

wnd.dmenu.callback = function() {
if (_req.readyState == 4) {
if (_req.status == 200) {
if (_opacity['wnd'] <= 10) popupOver('wnd');
_wnd.innerHTML = _req.responseText;
wnd.format();
setTimeout("wnd.mainTo(parseInt(185))", 1);
}
}
}



wnd.list.callback = function() {
if (_req.readyState == 4) {
if (_req.status == 200) {
if (getById('cat_old_link_id')) getById('cat_old_link_id').id = "";
_cat_old_link_id.id = "cat_old_link_id";

popupOut('wnd');
setTimeout("wnd.mainTo(parseInt(185))", 1000);
setTimeout("_wnd.innerHTML = _req.responseText;", 1200);
setTimeout("wnd.format();", 1300);
setTimeout("popupOver('wnd')", 1300);
}
}
}







wnd.mainTo = function(b_to) {
b_from = parseInt(document.body.scrollTop);
b_go  =  Math.ceil((b_to + b_from) / 2);
document.body.scrollTop = b_go;
if (b_go < b_from) {
setTimeout("wnd.mainTo("+b_to+")", 1);
} else {
document.body.scrollTop = b_to;
}
}


wnd.inTop  = function() {
_wnd_sm_y++;
wnd.arrow();
}

wnd.inBtm = function() {
_wnd_sm_y--;
wnd.arrow();
}
wnd.unset = function() {
_wnd.innerHTML = "";
_wnd.style.top = "-5000px";
if (getById('cat_old_link_id')) getById('cat_old_link_id').id = "";
}
wnd.close = function() {
popupOut('wnd')
setTimeout("wnd.unset()", 800);
}




history.go = function() {

alert('test');
}


_opacity = new Array();
_layer = new Array();
var _stepOpacity=10;
var _stepTimeOut=0.1;
var _stepInterval=300;
var _v = new Array();;
var _h = new Array();;
var _t = new Array();;
var _s = new Array();;

function hiddenImgList(_stopKey) {
if (_layer) {
for (var id in _layer) {
if (_stopKey != _layer[id]) hiddenImage(_layer[id]);
}
}
}




function hiddenPopupList(_stopKey) {
if (_layer) {
for (var id in _layer) {
if (_stopKey != _layer[id]) unSetOpacity(_layer[id]);
}
}
}


function viewImgList() {
if (getById('img_src')) loadImg();
if (_layer) {
for (var id in _layer) {
popupOver(_layer[id]);
}
}
}

function hiddenImage(key) {
_opacity[key]=0;
_this=document.getElementById(key);
_this.style.filter ="alpha(opacity="+_opacity[key]+");";
_this.style.visibility = "hidden";

}


function popupOver(key) {
_this=document.getElementById(key);
_this.style.visibility = "visible";
clearInterval(_t[key]);
if (_opacity[key] != 100) setOpacity(key);
}

function popupOut(key) {
_this=document.getElementById(key);
clearTimeout(_v[key]);
clearTimeout(_h[key]);
clearInterval(_t[key]);
_t[key]=setInterval("unSetOpacity(\""+key+"\")", _stepInterval);
}


function setOpacity(key) {
_this=document.getElementById(key);
clearTimeout(_h[key]);
if (_opacity[key] < 100) {
_opacity[key]+=_stepOpacity;
_this.style.filter ="alpha(opacity="+_opacity[key]+");";
_this.style.opacity  =  _opacity[key]/100;
_v[key]=setTimeout("setOpacity(\""+key+"\")", _stepTimeOut);
} else {
clearTimeout(_v[key]);
}
}

function unSetOpacity(key) {
_this=document.getElementById(key);
clearTimeout(_v[key]);


if (_opacity[key] > 10) {
_opacity[key]-=_stepOpacity;

_this.style.filter ="alpha(opacity="+_opacity[key]+");";
_this.style.opacity  =  _opacity[key]/100;


_h[key]=setTimeout("unSetOpacity(\""+key+"\")", _stepTimeOut);
} else {
clearTimeout(_t[key]);
clearTimeout(_h[key]);
_this.style.visibility = "hidden";
_this.style.filter="";
}
}




function displayShow(key) {
_this=document.getElementById(key);
_this.style.display = "";
}

function displayHidden(key) {
_this=document.getElementById(key);
_this.style.display = "none";
}


function showOtherPage(_showPage) {
//         _s[key]=setInterval("hidDisplayAndShow(\""+_hidPage+"\",\""+_showPage+"\")", 1000);

hidDisplayAndShow(_hidPage, _showPage);
_hidPage=_showPage;
}




function hidDisplayAndShow(_hidPageKey, _showPageKey) {

//           alert("спрятать "+_hidPageKey+" "+_opacity[_hidPageKey]+", показать "+_showPageKey+" "+_opacity[_showPageKey]+" ");

//           clearInterval(_s[key]);
popupOut(_hidPageKey);
displayHidden(_hidPageKey);
displayShow(_showPageKey);
hiddenImage(_showPageKey);
popupOver(_showPageKey);
}

function showOtherYear(_showYear) {
hidDisplayAndShow(_hidYear, _showYear);
_hidYear=_showYear;
}


