var C=true;//поддерживается ли аякс, true - не поддерживается
var w=false;//поддерживает ли браузер addEventListener

//определение браузера

var R=(c.indexOf("konqueror")!=-1);
var z=(c.indexOf("icab")!=-1);
var A=document.URL;
var P=(c.indexOf("aol")!=-1);
var s=(c.indexOf("webtv")!=-1);
var y=(c.indexOf("omniweb")!=-1);
var v=(c.indexOf("dreamcast")!=-1);
var r=((c.indexOf('safari')!=-1)&&(c.indexOf('mac')!=-1))?true:false;
var rw=((c.indexOf('webkit')!=-1)&&(c.indexOf('wind')!=-1))?true:false;
var q=(R||z||P||s||y||v||r);
var k=((!r)&&(!rw)&&(!d)&&(!q)&&(n.product)&&(n.product.toLowerCase()=="gecko")&&(n.productSub)&&(c.indexOf('gecko')!=-1))?true:false;
var p=((c.indexOf("msie")!=-1)&&(n.appVersion.toLowerCase().indexOf('msie')!=-1)&&(!d)&&(!k)&&(!q)&&(c.indexOf('win')!=-1)&&(c.indexOf('mac')==-1))?true:false;
var h=(p&&parseFloat(c.substring(c.indexOf('msie ')+5))>5)?true:false;
if((k)||((d)&&(G>=8.0))||(h)||(rw)) C=false;//аякс-работает
if(((k)&&(parseInt(navigator.productSub)>20020822))||((d)&&(G>=9.0))) w=true; // addEventListener поддерживается
var x=true; //еще не было переходов по аяксу
var I=location.href; //весь адрес
O=I.indexOf("/",7)+1;
var u=I.substring(0,O);// хранит http://www.site.ru/
var timeoutId=false;
var numConnect = 0;
function ok()//для работы кнопки НАЗАД в IE, вызывается из файла b.html, по нажатию НАЗАД меняется хэш страницы на прошлый, вслед за этим движок, увидев смену хэша, загружает контент
{
//если уже были переходы по аяксу
if(!x){location.hash=(window.frames('aaa').location.search.substring(1));}
}


function f(l) //реализация Аякса
{
var re,pref,num;
numConnect++;
if(numConnect>5)
{
clearInterval(timeoutId);
numConnect=0;
}

re=new RegExp("^([a-z])([0-9]{1,5})([a-z0-9]{0,6})$","i");  //выделяем префикс+ID регуляркой
re.exec(l);
pref=RegExp.$1; //префикс идшника
postf=RegExp.$3; //дополнительная информация
num=RegExp.$2;  //номер после префикса
if(document.getElementById('prs'))document.getElementById('prs').style.display='block';//включаем картинку-индикатор
document.body.style.cursor='wait';
l='index.php?id='+num+'&lang='+pref+'&rndnc=1';
if(postf) l += '&attach='+postf;
if(l.substring(0,4)!='http') l=u+l;
if(document.getElementById('sscrart'))removeElementById('sscrart');
var t=document.createElement('SCRIPT');//создается элемент SCRIPT, происходит аяксовый вызов
t.type='text/javascript';
t.id='sscrart';
t.src=l;
document.body.appendChild(t);
}

  function ad(fr) {
     if (C) return true; //если браузер не умеет работать с аяксом, сабмитим данные как обычно формой
         //собственно Аяксовая отправка
      document.body.style.cursor = 'wait';
    var jsel = document.createElement('SCRIPT');
      jsel.type = 'text/javascript';
      jsel.src = u+'index.php?add_com_ajax=on&comm_submit=true&id_page='+fr.id_page.value+'&nick='+fr.nick.value+'&contact='+fr.contact.value+'&comment='+fr.comment.value+'&cph='+fr.cph.value+'&nc='+parseInt(Math.random()*99999999);
      jsel.src=jsel.src.replace(/#/g,'%23');
    document.body.appendChild(jsel);
    return false;
  }



function K(){ //функция, которая подставляет ко всем ссылкам вида pN.html событие onclick для смены хэша в адресе

if(!document.getElementsByTagName||C) return null;// если не поддерживается getElementsByTagName или не подходит браузер, выходим из функции и аякс не цепляется
var m=document.getElementsByTagName("a");

for(var F=0;F<m.length;F++) //для каждой ссылки, удовлетворяющей условиям - есть атрибут href и в нем нет якоря (если якорь есть, значит аякс уже висит на этой ссылке) и если можем получить id через get_id и если для ссылки не запрещен аякс
{
var e=m[F];
e.style.cursor='pointer'; //
if(e.getAttribute("href")&&(e.getAttribute("href").indexOf("#")==-1)&&(e.getAttribute("rel")!="noajas")){
if(get_id(e.getAttribute("href"))){
e.onclick=function(){    //вешаем onclick на ссылку, удовлетворяющую условиям выше, функция по клику устанавливает href='#'+id
var H=this.toString(10); // в H содержится href ссылки
if(H.indexOf("#")==-1){
var id=get_id(H); //получить id, соответствующий href-у ссылки
this.href='#'+id;
this.style.cursor='wait';
}}}}}}

function L(){ //вызывается через o (), которая в свою очередь загружается после загрузки страницы
K(); //типа make_a();
var i=location.hash;
var j=(i?i:'-4');//если хэша нет, то ставим -4
j=j.replace(/#/g,''); //вырезаем решетку
//если мы уже находимся на нужной странице, и не было переходов по аяксу
if((get_id(location.pathname)==j)&&x)return null;

//если запомненный хэш документа (dh) не совпадает с текущим (j) то
if((dh!=j)||(j!='-4'&&x)) {

  dh=j;                    //в запомненный хэш пишем текущий
  if(h) {                 //для IE запускаем ХАК с кнопкой НАЗАД
    if(j=='-4') {j=mp};
    document.getElementById("aaa").src="/b.html?"+j;
  }
  else {                   //если не IE
    if((j=='-4')&&(get_id(location.pathname)==false)) {
      j=mp; //ставим - загрузить главную - 1
    }
    else{
     if(j=='-4'){ j=get_id(location.pathname); } //иначе - загрузить нужную
    }
  }
f(j); //собственно аяксовый вызов, j-номер нужной страницы
if(timeoutId) clearInterval(timeoutId);
timeoutId = setInterval(function(){f(j)}, 3000);
x=false; //сделали переход по аяксу, установили флаг
}
}

var b=false; //флаг - чтобы запустить o() только один раз

function o()//для однократного запуска L()
{

if(!b){
setInterval('L()', 300);//каждые 0,3 секунды вызывать L() по возможности убрать!
b=true;}}

function D(){
    if(C){return null;}//если браузер не подходит - выйти
    if(w&&document.addEventListener){
        document.addEventListener("DOMContentLoaded",o,false);  //добавляем в событие "по загрузке документа" функцию o()
    }
    else { //для браузеров, не поддерживающих addEventListener
        //для сафари
        if (rw) {
              var tm = setInterval(function() { if (/loaded|complete/.test(document.readyState)) { clearInterval(tm); o(); }}, 10);
        }
        else{ //для других
            var g=document.getElementsByTagName('html')[0];
            if(g==null||typeof(g)=="undefined"){
                //ждем, пока загрузится вся страница
                setTimeout(function(){D()},10);
            }
            else{//когда страница загрузилась
                var J=g.innerHTML.toString(10).lastIndexOf('</body>');
                var Q=g.innerHTML.toString(10).lastIndexOf('</BODY>');
                     if((J==-1)&&(Q==-1)){
                         setTimeout(function(){D()},10);
                     }
                    else{  o(); }
            }
         }
    }


}

function M()//для работы кнопки НАЗАД в IE
{
setTimeout( function() {
B=dh;
if((get_id(location.pathname)!=false)&&(dh=='-4'))B=get_id(location.pathname);
if(get_id(location.pathname)==false&&(dh=='-4'))B=mp;
//a.src="/b.html?"+B;

document.getElementById("aaa").src="/b.html?"+B;
}, 3000);
}
if(h)M();

function removeElementById(nodeId)
{
  document.getElementById(nodeId).parentNode.removeChild(document.getElementById(nodeId));
}

D();//запуск