/*
	Copyright © Eleanor CMS
	URL: http://eleanor-cms.ru, http://eleanor-cms.com
	E-mail: support@eleanor-cms.ru
	Developing: Alexander Sunvas*
	Interface: Rumin Sergey
	=====
	*Pseudonym. See addons/copyrights/info.txt for more information.
*/
var not_loading,_mid;
var loading_id='loading';
if(!Array.indexOf)
{
	Array.prototype.indexOf = function(obj)
	{
		for(var i=0; i<this.length; i++)
			if(this[i]==obj)
				return i;
		return -1;
	}
}
function Ajax(varname,arr,func,cache)
{
	if (!varname)
		varname=_mid;
	else
		varname=eval(varname);
	arr['_mid']=varname;
	JsHttpRequest.query('ajax.php',arr,
	function(result, errors)
	{		if (result['status']=='error' || errors)
			alert(result['answer']+errors);
		else
		{			func(result);
			if (result['eval'])
				eval(result['eval']);
		}
	},
	!cache);
	return false;
}

function Trim(str)
{
	if(!str || typeof str != 'string')
		return null;
	return str.replace(/^[\s]+/,'').replace(/[\s]+$/,'').replace(/[\s]{2,}/,' ');
}

function YPos()
{
	var scroll_y=0;
	if (document.documentElement && document.documentElement.scrollTop)
		scroll_y=document.documentElement.scrollTop;
	else if (document.body && document.body.scrollTop)
		scroll_y=document.body.scrollTop;
	else if (window.pageYOffset)
		scroll_y=window.pageYOffset;
	else if (window.scrollY)
		scroll_y=window.scrollY;
	return scroll_y;
};

function ShowLoad()
{	var x,y;
	var load = Id(loading_id).style;
	if (!load || not_loading)
		return;
	if (self.innerHeight)
	{
		x=self.innerWidth;
		y=self.innerHeight;
	}
	else if (document.documentElement && document.documentElement.clientHeight)
	{
		x=document.documentElement.clientWidth;
		y=document.documentElement.clientHeight;
	}
	else if (document.body)
	{
		x=document.body.clientWidth;
		y=document.body.clientHeight;
	}
	load.left=x/2-100+"px";
	load.top=y/2-25+YPos()+"px";
	load.display  = 'block';
}

function HideLoad()
{	var load = Id(loading_id);
	if (not_loading || !load)
		return;
	load.style.display='none';
}

function SwitchVisible(obj)
{
	var el = Id(obj);
	if (el.style.display == "none")
		el.style.display = "block";
	else
		el.style.display = "none";
	return false;
}

function JumpToPage(links,pages,onclick)
{	var s=prompt('Введите номер страницы, на какую Вы хотите перейти','');
	if (!s)
		return false;
	pages=parseInt(pages);
	if (isNaN(s) || (s=parseInt(s))<=0)
	{
		alert('Ошибка!');
		return false;
	}
	if (s>pages)
		s=pages;
	if (onclick)
		eval(onclick.replace('{page}',s));
	else
		window.location=links.replace('{page}',s);
	return false;}

function SetCookie(name,value,ctime)
{	var data=new Date();
	data.setTime(data.getTime()+(ctime ? ctime : cookie_time)*1000);
	document.cookie=cookie_prefix+name+"="+escape(value)+';expires='+data.toGMTString()+";domain="+cookie_domain+";path="+cookie_path;
}

function Id(id)
{	return document.getElementById(id);}

function Position(obj)
{
	var x = y = 0;
	while(obj)
	{
		x+=obj.offsetLeft;
		y+=obj.offsetTop;
		obj=obj.offsetParent;
	}
	return {x:x, y:y};
}

function CheckGroup(obj)
{	var els=obj.getElementsByTagName('input');
	var can=false;
	for(var i=0;i<els.length;i++)
		if (els[i].getAttribute('type')=='checkbox' && els[i].checked)
		{
			can=true;
			break;
		}
	if (!can)
		alert('Вы ничего не выбрали!');
	return can;
}

function One2AllCheckboxes(parent,main_ch,names)
{
	var checks=Id(parent).getElementsByTagName('input');
	for (var i=0;i<checks.length;i++)
	{
		var check=checks[i];
		if (check.getAttribute("type")!="checkbox" || (names && check.getAttribute("name")!=names))
			continue;
		check.onclick=function()
		{
			MassClick();
			return true;
		}
	}
	var main=Id(main_ch);
	main.onclick=function()
	{
		MainClick();
		return true;
	}
	function MassClick()
	{
		var checked=true;
		for (var i=0;i<checks.length;i++)
		{
			var check=checks[i];
			if (check.getAttribute("type")!="checkbox" || (names && check.getAttribute("name")!=names))
				continue;
			checked&=check.checked;
		}
		main.checked=checked;
	}
	function MainClick()
	{
		for (var i=0;i<checks.length;i++)
		{
			var check=checks[i];
			if (check.getAttribute("type")!="checkbox" || (names && check.getAttribute("name")!=names))
				continue;
			check.checked=main.checked;
		}
	}
}

function LinkTo(s,ret)
{	s=(window.location.href.indexOf('#')==-1 ? window.location.href : window.location.href.substring(0,window.location.href.indexOf('#')))+s;	if (ret)
		return s;
	prompt('Ссылка:',s);
	return false;}

/*
	Этот участо кода позаимствован из Kasseler CMS http://kasseler-cms.net . Выражаю автору большую благодарность!
*/
var parsing_html = {
		script : function(html){
			var js_reg = /<script.*?>(.|[\r\n])*?<\/script>/ig;
			var js_str = js_reg.exec(html);
			var js_arr = [];
			if (js_str != null){
				js_arr = new Array(js_str.shift());
				while(js_str) {
					js_str = js_reg.exec(html);
					if (js_str != null) js_arr.push(js_str.shift());
				}
				if (js_arr)
					for(var i=0; i<js_arr.length;i++)
					{
						html = html.replace(js_arr[i], '');
						js_arr[i] = this.createScript(js_arr[i]);
					}
			}
			for (var i = 0; i < js_arr.length; i++)
				if (js_arr[i])
					document.body.appendChild(js_arr[i]);
			return html;
		},

		createScript : function(text){
			var script = document.createElement('script');
			var ind = this.search(text, '<script', '</script>');
			script = this.setAttribute(script, this.Atribute(ind.param));
			script.text = ind.text;
			return script;
		},

		search : function(html, start, end){
			var ind = Array(html.toLowerCase().indexOf(start), html.indexOf('>', html.toLowerCase().indexOf(start) + 1), html.toLowerCase().indexOf(end, html.indexOf('>', html.toLowerCase().indexOf(start) + 1) + 1));
			var atrib = {param : html.substring(ind[0]+ind[0].length, ind[1]), text : html.substring(ind[1]+1, ind[2]), tag : html.substring(ind[0], ind[2]+end.length)}
			return {ind1 : ind[0], ind2 : ind[1], ind3 : ind[2], param : atrib.param, text : atrib.text, tag : atrib.tag};
		},

		setAttribute : function(Obg, Src){
			for(var i = 0; i < Src.length; i ++ ){
				var f = Src[i].indexOf("=");
				if(f != - 1){
					var aw = this.cutAttribute(Src[i], f + 1);
					var name = Src[i].substring(0, f);
					var atrib = Src[i].substring(aw[0] + 1, aw[1]);
					/*if (name=='type')
						continue;
					if(Obg.setAttribute) Obg.setAttribute(name, atrib);
					else*/
					if(name=='src')
						Obg.src=atrib;
				}
			}
			return Obg;
		},

		Atribute : function(Atrib){
			var res = [];
			while(Atrib.indexOf(' ') != - 1){
				res[res.length] = Atrib.substring(0, Atrib.indexOf(' '));
				Atrib = Atrib.substring(Atrib.indexOf(' ') + 1);
			}
			if(Atrib.length != 0)
				res[res.length] = Atrib;
			return res;
		},

		cutAttribute : function(at){
			var fg= Array(at.indexOf("'", 0), at.indexOf('"', 0));
			if(fg[1]<fg[0] && fg[1]!= -1 || fg[0]== -1) return[fg[1], at.indexOf('"', fg[0]+1)];
			else return[fg[0], at.indexOf("'", fg[0]+1)];
		}
	}
