// JavaScript Document
function sescape(str)
// работает аналогично escape(), но символ "/" также заменяет 
// на его quoted-printable представление "%2F".
// это сделано потому, что при наличие в строке URL "лишних" (не указывающих сервер и путь файла)
// слэшей после имени файла некоторые браузеры неправильно понимают относительные гиперссылки 
// и "ищут" файл по такой ссылке не в том каталоге, где он есть
{
 var s='';
 var i=0;
 var c='';
 
 if (str)
	{	
  var s2=escape(str)
  for (i=0; i<=s2.length-1; i++)
		{
			c=s2.charAt(i);
			if (c == '/') s=s+'%2F'; else s=s+c;
		}
	}
 return(s);
}

function sunescape(str)
// обратная к sescape()
{
 return(unescape(str));
}

function CheckStr(s)
// проверяет "валидность" строки. Возвращает true, если s - действительно строка (указатель на 
// экземпляр объекта типа (класса) String), и строка непустая (содержит хотя бы один символ).
// Во всех прочих случаях возвращает false. Позволяет избежать ошибок при выполнении скрипта 
// в любом случае
{
 var res=false;
 var st = new String(typeof(s));
	if (st.toLowerCase()=='undefined') return (false);
	if (s==null) return (false);

 if (s)
	 if (s.length)
		 if (s.length>0) res=true;

 return(res);
}

function GetPV(pname)
// новый метод param(parameter_name) объекта класса String (строка)
// ищет в строке параматр URL с именем pname и возвращает его значение.
// если такой параметр не найден, возвращает пустую строку.
{
 var pv='';
	var ps='';
	var s='';
	var indeq=-1;
 
 var i=this.indexOf('?');
	if (i>=0) s=this.substring(i+1, this.length); else return('');
	
 if ( CheckStr(s) && CheckStr(pname) )
	{
		var params=s.split("&");
  for (i=0; i<=params.length-1; i++)
			if (params[i].length>=3)
			{
    ps=params[i];
    indeq=ps.indexOf('=');
				if (indeq>=1)
					if (ps.substring(0, indeq)==pname) pv=sunescape( ps.substring(indeq+1, ps.length) );
			}
	} 

 return(pv);
}

function GPro(PropertyName)
// Новый метод GetProperty(PropertyName) объекта класса String
// Для строки document.cookie или её текстовой копии. Возвращает строку - значение свойства 
// с именем PropertyName, если возможно; иначе - пустую строку
	{
		if (this.length>0)
			{
				var s='';
				s=s+this;
				var i=s.indexOf(PropertyName);
				if (i==-1) return('');
				var k=s.indexOf('=', i);
				if (k==-1) return('');
				var l=s.indexOf(';', k+1);
				if (l==-1) l=s.length;
				var s2=s.substring(k+1, l);
				return(s2.valueOf());
			}
		return('');
	}


String.prototype.param=GetPV;
String.prototype.GetProperty=GPro;

function StripParam(shref)
// из заданного в строке URL с параметрами (после вопросительного знака за именем файла которые)
// исключает эти параметры
{
 if (shref)
 {
		if (shref.length==0) return('');
		var i=shref.indexOf('?');
		if (i>=1) return (shref.substring(0, i)); else return (shref);
	} else return('');
}

function GetHostName(shref)
// из заданного в строке URl извлекает имя хоста, например
// new-life.newmail.ru из 
// http://new-life.newmail.ru/sotros/eng/frset-en.htm?http#sdf
// аналогично location.hostname, но применима к любой строковой переменной или константе
{
 if (shref)
	 {
			if (shref.length==0) return(''); 
		} 
	else return('');
	
	var ibeg=shref.indexOf('://');
	var iend=shref.indexOf('/', ibeg + 3);
	
	if (ibeg==-1 || iend==-1 || (iend-ibeg)<=3) return('')
	 else return(shref.substring(ibeg+3, iend));
}


function MultiGet(pdoc, ide)
{
 var p=null;
 if (pdoc.getElementById)
  if (pdoc.getElementById(ide+''))
   p=pdoc.getElementById(ide+'');
 if (p!=null) return(p);
 if (pdoc.ide) p=pdoc.ide;
 if (p!=null) return(p);
 if (pdoc.all)
  {
   if (pdoc.all.ide) 
    p=pdoc.all.ide;
   if (pdoc.all[ide+''])
    p=pdoc.all[ide+''];
  } 
 return(p);
}

//<![CDATA[
function cl(link)
{
	var img = new Image(1,1);
	img.src = 'http://www.liveinternet.ru/click?*' + link;
}
//]]>
function MJB()
{
	var s0='aas';
	var s4='ail.c';
	var s1='ma';
	var s3='umega@gm';
	var s5='om';
	var s2='ilto:aro';
	
	s=s1+s2+s3+s4+s5;
	
	document.write('<span class="toback"><span><a onclick="javascript:history.back();">←&nbsp;назад</a></span>&nbsp;|&nbsp;</span>');
	document.write('<a href="'+s+'">написать@автору</a>&nbsp;|&nbsp;');
	document.write('<span class="toprint"><span><a onclick="javascript:window.print();">напечатать</a></span>&nbsp;|&nbsp;</span>');
}
function MJC()
{
	document.write('<a onclick="javascript:history.back();" class="toback">←&nbsp;назад</a>');
}

var _gaq = _gaq || [];
_gaq.push(['_setAccount', 'UA-27946378-1']);
_gaq.push(['_trackPageview']);

(function() {
		var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
		ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
		var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
})();


