String.prototype.HSC = function () 
	{
	return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;').replace(/"/g,'&quo;');
	};
String.prototype.nl2br = function () 
	{
	return this.replace(/\r\n/g,'<br>').replace(/\n/g,'<br>');
	};
String.prototype.trim=function()
	{
	return this.replace(/(^\s*)|(\s*$)/g,"");
	}
String.prototype.striptags=function()
	{
	return this.replace(new RegExp("\<(|/)[a-z]+(.*?)\>","gi"),"");
	}
function $(x)//getElementById
	{
	if (document.getElementById)		
		return document.getElementById(x) || null;
	else if (document.all)		
		return document.all[x] || null;
	else
		return null;
	}
function getElementsByTagNames(list,obj) {
	if (!obj) obj = document;
	var tagNames = list.split(',');
	var resultArray = new Array();
	for (var i=0;i<tagNames.length;i++) {
		var tags = obj.getElementsByTagName(tagNames[i]);
		for (var j=0;j<tags.length;j++) {
			resultArray.push(tags[j]);
		}
	}
	var testNode = resultArray[0];
	
	
	if (!testNode) return [];
	if (testNode.sourceIndex) {
		resultArray.sort(function (a,b) {
				return a.sourceIndex - b.sourceIndex;
		});
	}
	else if (testNode.compareDocumentPosition) {
		resultArray.sort(function (a,b) {
				return 3 - (a.compareDocumentPosition(b) & 6);
		});
	}
	return resultArray;
}
// (c) 2007 www.QuirksMode.org
function findPos(obj,parent)
	{
	var cl=0;
	var ct=0;
	do
	{
		cl+=obj.offsetLeft || 0;
		ct+=obj.offsetTop || 0;
		obj=obj.offsetParent;
	} while ((!parent && obj) || (parent && parent!=obj)); 
	return [cl,ct];
	}

function useNavigation()
	{
	//window.onload=createNavigation;
	onload_fn.push(createNavigation);
	}
function useVocabular()
	{
	//window.onload=createNavigation;
	onload_fn.push(translateWords);
	}
function createNavigation()
	{
	navi.content=$('content');
	var chap=getElementsByTagNames("h1,h2,h3,h4",navi.content);
	var out='<div style="text-align:right;cursor:pointer;cursor:hand;color:#444">скрыть навигацию</div>';
	for (var i=0;i<chap.length;i++)
		{
		var t=(chap[i].tagName.substr(1,1));
		var link=(chap[i].id)?chap[i].id:"link"+i;
		if (i==0)
			link="top";
		chap[i].id=link;
		out+='<div  class="deep'+(t)+'">';
		for (var j=0;j<t-2;j++)
			{
			out+="&mdash; ";
			}
		out+='<a href="#'+link+'">';
		//out+=(i!=0)?chap[i].innerHTML.striptags():"В начало";
		out+=(i!=0)?chap[i].innerText||chap[i].textContent:"В начало";
		out+='</a></div>';
		}
	navi.navipan=document.createElement("DIV");
	navi.navipan.id="navipan";
	navi.navipan.onclick=function () {nav_open(false);}
	navi.navipan.innerHTML=out;
	navi.navipan.style.visibility="hidden";
	navi.content.appendChild(navi.navipan);

	var img=document.createElement("IMG");
	img.src="/i/navig.show.png";
	img.height=204;
	img.width=16;
	img.border=0;
	img.alt="Показать навигацию";
	var link=document.createElement("A");
	link.href="#";
	link.onclick=function () {nav_open(true);return false};
	link.appendChild(img);

	navi.closed=document.createElement("DIV");
	navi.closed.id="navipan_closed";
	navi.closed.appendChild(link);
	navi.content.appendChild(navi.closed);
	
	setInterval(nav_follow,200);
	navi.ie=(navi.navipan.currentStyle && navi.navipan.currentStyle.position=="absolute");
	}
var navi={"content":null,"navipan":null,"closed":null,"ie":false};
function nav_open(open)
	{
	navi.closed.style.visibility=(open)?"hidden":"visible";
	navi.navipan.style.visibility=(!open)?"hidden":"visible";
	}
function nav_follow()
	{
	var c=navi.content;
	var cc=navi.navipan;
	var ccc=navi.closed;
	var b=self.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
	if (navi.ie)//position: absolute
		{
		var a=findPos(c)[1];
		var z=(a>b)?0:b-a+10;
		cc.style.top=z+"px";
		ccc.style.top=z+"px";
		}
	else //position: fixed
		{
		var a=findPos(c);		
		var z=b>a[1]?5:a[1]-b;
		cc.style.top=z+"px";
		ccc.style.top=z+"px";
		var a=a[0]+c.clientWidth;
		cc.style.left=a-cc.clientWidth+18+"px";
		ccc.style.left=a+"px";		
		}
	//setTimeout(nav_follow,200);
	}
function translateWords()
	{
	if (!document.createElement)
		return;
	var z=document.createElement('SCRIPT');
	z.src="/page/vocabular/export.js";
	document.getElementsByTagName('head')[0].appendChild(z);
	trans.check=setInterval(function() {if (window.words) {clearInterval(trans.check);readyToTranslate();}},500);
	}
function loadAdz()
	{
	if (!document.createElement)
		return;
	var z=document.createElement('SCRIPT');
	z.src="/partners/partners.js";
	document.getElementsByTagName('head')[0].appendChild(z);
	adz.timeout=setInterval(function() {if (window.all_adz) {adz.data=window.all_adz;clearInterval(adz.timeout);showAdz();}},100);
	}
function showAdz()
	{
	var divs=document.getElementsByTagName("DIV");
	for (var i=divs.length-1;i>=0;i--)
		{
		
		if (!adz.data[divs[i].id])
			continue;
		
		var n=Math.ceil(Math.random()*adz.data[divs[i].id].length)-1;
		var d=adz.data[divs[i].id][n];
		
		var temp=document.createElement("A");
		//temp.setAttribute("href","/partners/click.php?"+d.id);
		temp.setAttribute("href",d.href?d.href:"#");
		temp.className="adv";
		
		if (d.img)
			{
			var img=document.createElement("IMG");
			img.setAttribute("border","0");
			img.setAttribute("src",d.img);
			img.setAttribute("alt",d.title || "реклама");
			img.setAttribute("title",d.title || "реклама");
			if (d.h && d.w)
				{
				img.setAttribute("height",d.h);
				img.setAttribute("width",d.w);
				}
			temp.appendChild(img);
			}

		if (d.type && d.type=="left")
			temp.className="adv_left";

		if (d.type && d.type=="top")
			{
			temp.className="";
			temp.setAttribute("style","");
			}
		if (d.text)
			{
			//var text=document.createTextNode(d.text);
			//temp.appendChild(text);
			temp.innerHTML+=d.text;
			}
		divs[i].parentNode.insertBefore(temp,divs[i]);
		divs[i].parentNode.removeChild(divs[i]);
		
		}
	}
function readyToTranslate()
	{
	var doIt=false;
	var el=document.getElementsByTagName('dfn');
	for (var i=el.length-1;i>=0;i--)
		{
		if (!el[i].getAttribute("title"))
			continue;
		var q=el[i].getAttribute("title");
		var qq=el[i].innerHTML;
		if (words[q])
			{
			el[i].className="translated";
			el[i].setAttribute("title","Нажмите для отображения определения слова");
			el[i].onclick=function (x) {return function() {showTranslation(true,this,x);}}(q);
			doIt=true;
			}
		}
	if (!doIt)
		return;
	trans.box=document.createElement("DIV");
	trans.box.id="translationToolWindow";
	trans.box.innerHTML="";
	trans.box.style.display="none";
	trans.box.onclick=function () {this.style.display="none";clearTimeout(trans.timeout);};
	$('content').appendChild(trans.box);
	}
var trans={"timeout":null,"box":null,"check":null};
var adz={"timeout":null,"data":null};
function showTranslation(showme,el,what)
	{
	clearTimeout(trans.timeout);
	trans.timeout=setTimeout(function () {trans.box.style.display="none"},7000);
	var pos=findPos(el,$('content'));
	trans.box.style.top=el.scrollHeight+2+pos[1]+"px";
	trans.box.style.left=((pos[0]>350)?pos[0]-200+el.scrollWidth:pos[0])+"px";
	trans.box.innerHTML=words[what];
	trans.box.style.display="block";
	}
var onload_fn=[loadAdz];
var _transTimeout;
function onload_scripts() 
	{
	for (var i=0;i<onload_fn.length;i++)
		{
		onload_fn[i]();
		}
	}