var lv = null, val=null, cv=null, ind=null, nav=false, grp=false;
var h_off=0, h_on=0, h_end=0, h_oend=0, i=0, diff=0, step=9;
var lnat = "#db2242", lsub = "#555555", lcur = "#000000";
var h0 = new Array(), divs = new Array();
var isOp=(navigator.userAgent.indexOf("Opera")>-1)?1:0;
var isMoz=(navigator.userAgent.indexOf("Gecko")>-1)?1:0;

function vis(val) {
  if(nav) {
    if(lv && !document.getElementById("d"+lv)) {
        //if(lv.length>2)
		document.getElementById("l"+lv).style.color=lnat;
        lv = lv.substr(0,lv.length-2);
    }

    if(document.getElementById("d"+lv)) {
        if(lv == val.substr(0,val.length-2) && h0[val]) {
          for(i=2;i<val.length;i+=2) {
            slide_on(ch(val.substr(0,i)),ch(val.substr(0,i))+h0[val],val.substr(0,i));
          }
        } else if(lv.substr(0,2) != val.substr(0,2)) {
          for(i=lv.length;i>=2;i-=2) { off(lv.substr(0,i)); }
        } else {

          diff=h0[val]?h0[val]:0;//&& lv.length>2
          if(document.getElementById("d"+lv).style.display == "none") document.getElementById("l"+lv).style.color=lnat;
          else {
            for(i=lv.length;i>=val.length;i-=2) {
				if(lv.indexOf(val)!=-1) {
					//if(i>2)
					document.getElementById("l"+lv.substr(0,i)).style.color=lnat;
					if(lv!=val) continue;
				}
                diff -= h0[lv.substr(0,i)];
                off(lv.substr(0,i));
            }
          }

          if(document.getElementById("d"+val) && document.getElementById("d"+val).style.display != "none") diff -= ch(val)+6;

          for(i=lv.length;i>=2;i-=2) {
            if(!diff) break;
            if(diff>0) slide_on(ch(val.substr(0,i)),ch(val.substr(0,i))+diff,val.substr(0,i));
            else if(diff<0) slide_off(ch(lv.substr(0,i)),ch(lv.substr(0,i))+diff+4,lv.substr(0,i));
          }
        }
    } else if(lv) document.getElementById("l"+lv).style.color=lnat;

    if(document.getElementById("d"+val) && document.getElementById("d"+val).style.display == "none") on(val);
    if(!isNaN(val)) lv =(val == lv)?val.substr(0,val.length-2):val;
  } else off(val);
  return false;
}

function ch(cv) { return document.getElementById("d"+cv).offsetHeight; }

function on(v) {
    //if(v.length>2||v.substr(0,1)!='0')
	document.getElementById("l"+v).style.color=lsub;
    document.getElementById("i"+v).src = 'res/minus.gif';//'+(v.length>2?'_sub':'_main')+'
	document.getElementById("d"+v).style.display = 'block';
    slide_on(0,h0[v],v);
}

function slide_on(h_on,h_end,v){
    if(!document.getElementById("d"+v)||h_on==h_end) return;
    document.getElementById("d"+v).style.height=h_on+=step;
    if(h_on<h_end) setTimeout("slide_on("+h_on+","+h_end+",'"+v+"')",1);
    else document.getElementById("d"+v).style.height=h_end;
}

function off(v) {
    //if(v.length>2||v.substr(0,1)!='0')
	document.getElementById("l"+v).style.color=lnat;
    document.getElementById("i"+v).src = 'res/plus.gif';//'+(v.length>2?'_sub':'_main')+'
    if(nav) slide_off(h0[v],0,v);
    else document.getElementById("d"+v).style.display = 'none';
}

function slide_off(h_off,h_oend,v) {
    if(!document.getElementById("d"+v)||h_off==h_oend) return;
    if(h_oend<=0) h_oend=1;
    if(h_off <= 35)  {
        document.getElementById("d"+v).style.height=h_oend;
        if(h_oend<10) document.getElementById("d"+v).style.display = 'none';
    } else if(ch(v) > h_oend) {
        h_off=ch(v)-step*2;
        document.getElementById("d"+v).style.height=h_off;
        setTimeout("slide_off("+h_off+","+h_oend+",'"+v+"')",1);
    }
}

function path(code) {
    var k=0;
    for(i=0;i<document.images.length;i++) {
        if(!document.images[i].id || document.images[i].id.substr(0,1)!=='i') continue;
        else divs[k++]=document.images[i].id;
    }
    divs.sort(by_len);
    for(i=0;i<divs.length;i++){
        ind = divs[i].substr(1);
        if(document.getElementById("d"+ind)) h0[ind]=ch(ind);
        off(ind);
    }
    if(code.length>1) {
      var codes = code.split(",");
      for(var i=0; i<codes.length; i++) {
        document.getElementById("l"+codes[i]).style.color = lcur;
      }
    }
    nav=true;
}

function by_len(a,b){ return b.length-a.length; }

var r = null;

function req(url,m_id) {
	//if(isOp) return true;
    if (window.ActiveXObject) {
        r=new ActiveXObject("Microsoft.XMLHTTP");
        if (!r) r=new ActiveXObject("Msxml2.XMLHTTP");
    } else if(window.XMLHttpRequest) r = new XMLHttpRequest();

    if(r) {
		if(lv!=m_id) vis(m_id);
		//m_id.length>2&&
        if(document.getElementById("l"+m_id)) document.getElementById("l"+m_id).style.color=lcur;

        r.onreadystatechange=resp;
        r.open("GET",(isNaN(url))?'./'+url+((url.indexOf("?")>=0)?"&":"?")+'show='+m_id+'&ajax':'./?show='+url+"&ajax",true);
        try { r.send(null); }
        catch (errv) { return true; }
        //lv=m_id; //hideDm();
    } else return true;
    return false;
}

function resp(){
    if(r.readyState == 4){ // && r.status == 200
        if(r.responseText.length>1) document.getElementById("type").innerHTML=r.responseText;
        else {
            showDm('Внимание','Документ не найден в системе.');
            setTimeout(hideDm,1666);
        }
    }
}


function sendMail(link) {
    mailto = "info";
    mailto +="@";
    mailto += 'aps';
    mailto += 'o74.ru';
    link.href = "mailto:"+mailto;
    return true;
}

function choose(grp){
    if(grp.length==2) vis(grp);
    else {
        document.getElementById("l"+grp).style.color=(document.getElementById("l"+grp).style.color.length==0)?lcur:'';
        if(document.location.toString().match(/catalog|ordr|job/i)) setTimeout('document.location.reload()',2700);
    }
    showDm('Тематические группы',grp);
    setTimeout(hideDm,2666);
    return false;
}

function fcheck() {
  if (document.fform.ftype.value==1) {
  	document.fform.action="catalog.php";
  } else if (document.fform.ftype.value==2) {
  	document.fform.action="ordr.php";
  } else if (document.fform.ftype.value==3) {
  	document.fform.action="jobs.php?type=1";
  } else if (document.fform.ftype.value==4) {
  	document.fform.action="jobs.php?type=2";
  }
  if (!document.fform.find.value) {
  	alert ('Введите запрос для поиска');
  	document.fform.find.focus();
  	return false;
  } else if (document.fform.find.value.length<3) {
  	alert ('Слишком кототкий запрос для поиска');
  	document.fform.find.focus();
  	return false;
  } else return true;
}

function feedback() {
  if (!document.sform.to.value) {
  	alert ('Выбирите интересующий вопрос');
  	document.sform.to.focus();
  	return false;
  } else if (!document.sform.msg.value) {
  	alert ('Введите текст сообщения');
  	document.sform.msg.focus();
  	return false;
  } else if (document.sform.msg.value.length<5) {
  	alert ('Слишком кототкий текст сообщения');
  	document.sform.msg.focus();
  	return false;
  } else if (document.sform.pwd.value.length!=6) {
  	alert ('Введите число с изображения');
  	document.sform.pwd.focus();
  	return false;
  } else return true;
}


