﻿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('a').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;  //номер после префикса
start_effect();
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;
document.getElementById("aaa").src="/b.html?"+B;
}, 3000);
}
if(h)M();// если IE - запускаем ХАК для кнопки НАЗАД

function removeElementById(nodeId)
{
  document.getElementById(nodeId).parentNode.removeChild(document.getElementById(nodeId));
}

D();//запуск
