function ipsclass()
{	this.cookies=new Array();
	this.ignore_cookies=new Array(
									ipb_var_cookieid+'ipb_stronghold',
									ipb_var_cookieid+'session_id',
									ipb_var_cookieid+'ipb_admin_session_id',
									ipb_var_cookieid+'member_id',
									ipb_var_cookieid+'pass_hash'
	);
	this.settings={'do_linked_resize':0,'resize_percent':50};

	this.init=function()
	{		var _tmp=document.cookie.split(';');
		if(_tmp.length)
		{			for(i=0;i<_tmp.length;i++)
			{				if(_tmp[i].match(new RegExp(ipb_var_cookieid+".*$")))
				{					var _data=_tmp[i].split('=');
					var _key=$.trim(_data[0]);
					var _value=unescape($.trim(_data[1]));
					if(_key&&(!this.in_array(_key,this.ignore_cookies)))
					{						this.cookies[_key.replace(ipb_var_cookieid,'')]=_value;
					}
				}
			}
		}
		_tmp=null
	}

	this.html_entity_decode=function(text)
	{		if(typeof ca=='undefined')
		{			var ca=document.createElement('textarea')
		}
		ca.innerHTML=text.replace(/</g,'&lt;').replace(/>/g,'&gt;');
		return ca.value
	}

	this.in_array=function(needle,haystack)
	{		if(!haystack.length)
		{			return false
		}
		for(var i=0;i<haystack.length;i++)
		{			if(haystack[i]===needle)
			{				return true
			}
		}
		return false
	}

	this.include_javascript=function(_file,div_id)
	{		var _doc=(div_id) ? document.getElementById(div_id) : document.getElementsByTagName('head').item(0);
		var _js=document.createElement('script');
		_js.setAttribute('language','javascript');
		_js.setAttribute('type','text/javascript');
		_js.setAttribute('src',_file);
		_doc.appendChild(_js);
		return false
	}

	this.fade_in_element=function(div)
	{		var hash='#';
		var color_items="0123456789abcdef";
		var start_color='#ffff66';
		var orig_color=document.getElementById(div).style.backgroundColor;
		var temp_end='#ffffff';
		var iter=20;
		var time=80;
		var rbeg=color_items.indexOf(start_color.substr(1,1))*16+color_items.indexOf(start_color.substr(2,1));
		var gbeg=color_items.indexOf(start_color.substr(3,1))*16+color_items.indexOf(start_color.substr(4,1));
		var bbeg=color_items.indexOf(start_color.substr(5,1))*16+color_items.indexOf(start_color.substr(6,1));
		var rend=color_items.indexOf(temp_end.substr(1,1))*16+color_items.indexOf(temp_end.substr(2,1));
		var gend=color_items.indexOf(temp_end.substr(3,1))*16+color_items.indexOf(temp_end.substr(4,1));
		var bend=color_items.indexOf(temp_end.substr(5,1))*16+color_items.indexOf(temp_end.substr(6,1));
		for(i=1,r=rbeg,g=gbeg,b=bbeg;i<=iter;r=Math.round(rbeg+i*((rend-rbeg)/(iter-1))),g=Math.round(gbeg+i*((gend-gbeg)/(iter-1))),b=Math.round(bbeg+i*((bend-bbeg)/(iter-1))),i++)
		{			hstr='#'+color_items.charAt(Math.floor(r/16))+color_items.charAt(r%16)+color_items.charAt(Math.floor(g/16))+color_items.charAt(g%16)+color_items.charAt(Math.floor(b/16))+color_items.charAt(b%16);
			setTimeout('var div = document.getElementById("'+div+'"); div.style.backgroundColor = "'+hstr+'";',i*time);
		}
		setTimeout('var div = document.getElementById("'+div+'"); div.style.backgroundColor = "'+orig_color+'";',(i+1)*time);
	}

	this.lang_build_string=function()
	{		if(!arguments.length||!arguments)
		{			return
		}
		var string=arguments[0];
		for(var i=1;i<arguments.length;i++)
		{			var match=new RegExp('<%'+i+'>','gi');
			string=string.replace(match,arguments[i])
		}
		return string
	}

	this.get_id_from_text=function(id)
	{		return id.replace(/.*(\-|_)(\S+)/,"$2")
	}

	this.get_name_from_text=function(id)
	{		return id.replace(/(.*)(\-|_)(\S+)/,"$1")
	}

	this.location_jump=function(url,full)
	{		url=url.replace(/&amp;/g,'&');
		window.location.href=full ? url : ipb_var_base_url+url;
	}

	this.confirm_action=function(url,msg)
	{		if(!msg)
		{			msg='Для подтверждения нажмите ОК'
		}
		if(url)
		{			url=url.replace('&amp;','&')
		}
		else
		{			url=''
		}
		if(confirm(msg))
		{			window.location.href=url
		}
		else
		{			alert(ipb_global_lang['action_cancelled']);
			return false
		}
	};

	this.pop_up_window=function(url,width,height,name)
	{		if(!name)
		{			var mydate=new Date();
			name=mydate.getTime()
		}
		var Win=window.open(url.replace('&amp;','&'),name,'width='+width+',height='+height+',resizable=1,scrollbars=1,location=no,directories=no,status=no,menubar=no,toolbar=no');
		Win.focus();
		return false
	}

	this.get_obj_leftpos=function(obj)
	{		var curleft=0;
		if(obj.offsetParent)
		{			while(obj.offsetParent)
			{				curleft+=obj.offsetLeft;
				obj=obj.offsetParent
			}
		}
		else if(obj.x)
		{			curleft+=obj.x
		}
		return curleft
	}

	this.get_obj_toppos=function(obj)
	{		var curtop=0;
		if(obj.offsetParent)
		{			while(obj.offsetParent)
			{				curtop+=obj.offsetTop;
				obj=obj.offsetParent
			}
		}
		else if(obj.y)
		{			curtop+=obj.y
		}
		return curtop
	}

	this.cancel_bubble=function(e)
	{		e=e ? e : window.event;
		e.cancelBubble=true;
		e.returnValue=false;
		if(e.preventDefault)
			e.preventDefault();
		if(e.stopPropagation)
			e.stopPropagation();
		return e;
	}

	this.cancel_bubble_all=function(obj)
	{		return ipsclass.cancel_bubble(obj,true)
	}

	this.my_getcookie=function(name)
	{		return this.cookies[name]
	}

	this.my_setcookie=function(name,value,sticky)
	{		var expire="";
		var domain="";
		var path="/";
		if(sticky)
		{			expire="; expires=Wed, 1 Jan 2050 00:00:00 GMT"
		}
		if(ipb_var_cookie_domain!="")
		{			domain='; domain='+ipb_var_cookie_domain
		}
		if(ipb_var_cookie_path!="")
		{			path=ipb_var_cookie_path
		}
		document.cookie=ipb_var_cookieid+name+"="+value+"; path="+path+expire+domain+';';
		this.cookies[name]=value
	}

}

function center_div()
{
	this.divname='';
	this.divobj='';
	this.shimobj='';

	this.move_div=function()
	{
		try
		{
			if(parent.document.getElementById(this.divname))
			{
				this._document=parent.document;
				this._window=parent.window;
			}
		}
		catch(e)
		{
			return;
		}
		this.divobj=this._document.getElementById(this.divname);
		var my_width=0;
		var my_height=0;
		if(typeof(this._window.innerWidth)=='number')
		{
			my_width=this._window.innerWidth;
			my_height=this._window.innerHeight;
		}
		else if(this._document.documentElement&&(this._document.documentElement.clientWidth||this._document.documentElement.clientHeight))
		{
			my_width=this._document.documentElement.clientWidth;
			my_height=this._document.documentElement.clientHeight;
		}
		else if(this._document.body&&(this._document.body.clientWidth||this._document.body.clientHeight))
		{
			my_width=this._document.body.clientWidth;
			my_height=this._document.body.clientHeight;
		}
		this.divobj.style.position='absolute';
		this.divobj.style.display='block';
		this.divobj.style.zIndex=-1;
		if(is_ie)
		{
			var layer_html=this.divobj.innerHTML;
			var full_html="<iframe id='"+this.divname+"-shim' src='"+ipb_var_image_url+"/iframe.html' class='iframshim' scrolling='no' frameborder='0' style='position:absolute; top:0px; left:0px; right:0px; display: none;'></iframe>"+layer_html;
			this.divobj.innerHTML=full_html;
		}
		var divheight=parseInt(this.divobj.style.height) ? parseInt(this.divobj.style.height) : parseInt(this.divobj.offsetHeight);
		var divwidth=parseInt(this.divobj.style.width) ? parseInt(this.divobj.style.width) : parseInt(this.divobj.offsetWidth);
		divheight=divheight?divheight:200;
		divwidth=divwidth ? divwidth : 400;
		var scrolly=this.getYscroll();
		var setX=(my_width-divwidth)/2;
		var setY=(my_height-divheight)/2+scrolly;
		setX=(setX<0)?0:setX;
		setY=(setY<0)?0:setY;
		this.divobj.style.left=setX+"px";
		this.divobj.style.top=setY+"px";
		this.divobj.style.zIndex=99;
	}

	this.hide_div=function()
	{
		try
		{
			if(!this.divobj)
			{
				return;
			}
			else
			{
				this.divobj.style.display='none';
			}
		}
		catch(e)
		{
			return;
		}
	}

	this.getYscroll=function()
	{
		var scrollY=0;
		if(this._document.documentElement&&this._document.documentElement.scrollTop)
		{
			scrollY=this._document.documentElement.scrollTop;
		}
		else if(this._document.body&&this._document.body.scrollTop)
		{
			scrollY=this._document.body.scrollTop;
		}
		else if(this._window.pageYOffset)
		{
			scrollY=this._window.pageYOffset;
		}
		else if(this._window.scrollY)
		{
			scrollY=this._window.scrollY;
		}
		return scrollY;
	}
}

var input_ok_box='input-ok-content';
var input_warn_box='input-warn-content';
var img_blank='blank.gif';
var is_safari=((uagent.indexOf('safari')!=-1)||(navigator.vendor=="Apple Computer, Inc.")||(uagent.indexOf('konqueror')!=-1)||(uagent.indexOf('khtml')!=-1));
var is_opera=(uagent.indexOf('opera')!=-1);
var is_ie=((uagent.indexOf('msie')!=-1)&&(!is_opera)&&(!is_safari));
var is_moz=(navigator.product=='Gecko');
var is_win=((uagent.indexOf("win")!=-1)||(uagent.indexOf("16bit")!=-1));
var ua_vers=parseInt(navigator.appVersion);
var ipb_pages_shown=0;
var ipb_pages_array=new Array();
function gbl_check_search_box()
{
	try
	{
		var _cb=document.getElementById('gbl-search-checkbox');
		var _fd=document.getElementById('gbl-search-forums');
		if(_cb.checked&&ipb_input_f)
		{
			_fd.value=ipb_input_f;
		}
		else
		{
			_fd.value='all';
		}
	}
	catch(error){}
}

function show_inline_messages_instant(msg)
{
	_msg_box=document.getElementById('ipd-msg-text');
	_msg_box.innerHTML=message_pop_up_lang[msg];
	centerdiv=new center_div();
	centerdiv.divname='ipd-msg-wrapper';
	centerdiv.move_div();
	var _this_to=setTimeout("hide_inline_messages_instant()",2000);
}

function hide_inline_messages_instant()
{
	try
	{
		document.getElementById('ipd-msg-wrapper').style.display='none';
		parent.document.getElementById('ipd-msg-wrapper').style.display='none';
	}
	catch(acold){}
}

function add_onload_event(func)
{
	var oldonload=window.onload;
	if(typeof window.onload!='function')
	{
		window.onload=func;
	}
	else
	{
		window.onload=function()
		{
			if(oldonload)
			{
				oldonload();
			};
			func();
		};
	}
}

function my_getcookie(name)
{
	return ipsclass.my_getcookie(name);
}

function my_setcookie(name,value,sticky)
{
	return ipsclass.my_setcookie(name,value,sticky);
}

function lang_build_string()
{
	if(!arguments.length||!arguments)
	{
		return;
	}
	var string=arguments[0];
	for(var i=1;i<arguments.length;i++)
	{
		var match=new RegExp('<%'+i+'>','gi');
		string=string.replace(match,arguments[i]);
	}
	return string;
}

function friends_pop(extra_url)
{
	ipb_var_base_url=ipb_var_base_url.replace('&amp;','&');
	if(extra_url)
	{
		extra_url=extra_url.replace('&amp;','&');
	}
	else
	{
		extra_url='';
	}
	ipsclass.pop_up_window(ipb_var_base_url+'act=profile&CODE=friends_list_popup'+extra_url,450,400,'Friends');
}

function buddy_pop()
{
	var not_loaded_yet=0;
	if(use_enhanced_js)
	{
		try
		{
			xml_myassistant_init();
			not_loaded_yet=1;
		}
		catch(e)
		{
			not_loaded_yet=0;
		}
	}
	if(!not_loaded_yet)
	{
		ipb_var_base_url=ipb_var_base_url.replace('&amp;','&');
		window.open(ipb_var_base_url+'act=buddy','BrowserBuddy','width=250,height=500,resizable=yes,scrollbars=yes');
	}
}

function check_enter(pages_id,e)
{
	var keypress=e.keyCode ? e.keyCode : e.which ? e.which : e.charCode;
	if(keypress==13)
	{
		do_multi_page_jump(pages_id);
	}
}

function do_multi_page_jump(pages_id)
{
	var pages=1;
	var cur_st=ipb_var_st;
	var cur_page=1;
	var total_posts=ipb_pages_array[pages_id][2];
	var per_page=ipb_pages_array[pages_id][1];
	var url_bit=ipb_pages_array[pages_id][0];
	var userPage=parseInt(document.getElementById('st-'+pages_id).value);
	var st_type=document.getElementById('st-type-'+pages_id).value;
	st_type=st_type ? st_type : 'st';
	url_bit=url_bit.replace(new RegExp("&amp;","g"),'&');
	if(total_posts%per_page==0)
	{
		pages=total_posts/per_page;
	}
	else
	{
		pages=Math.ceil(total_posts/per_page);
	}
	if(cur_st>0)
	{
		cur_page=cur_st/per_page;
		cur_page=cur_page-1;
	}
	if(userPage>0)
	{
		if(userPage<1)
		{
			userPage=1;
		}
		if(userPage>pages)
		{
			userPage=pages;
		}
		if(userPage==1)
		{
			start=0;
		}
		else
		{
			start=(userPage-1)*per_page;
		}
		if(start)
		{
			window.location=url_bit+"&"+st_type+"="+start;
		}
		else
		{
			window.location=url_bit;
		}
		return false;
	}
}

function pages_st_focus(pages_id)
{
	document.getElementById('st-'+pages_id).focus();
}

function ShowHide(id1,id2)
{
	if(id1!='')
		toggleview(id1);
	if(id2!='')
		toggleview(id2);
}

function my_getbyid(id)
{
	itm=null;
	if(document.getElementById)
	{
		itm=document.getElementById(id);
	}
	else if(document.all)
	{
		itm=document.all[id];
	}
	else if(document.layers)
	{
		itm=document.layers[id];
	}
	return itm;
}

function toggleview(id)
{
	if(!id)
		return;
	if(itm=my_getbyid(id))
	{
		if(itm.style.display=="none")
		{
			my_show_div(itm);
		}
		else
		{
			my_hide_div(itm);
		}
	}
}

function my_hide_div(itm)
{
	if(!itm)
		return;
	itm.style.display="none";
}

function my_show_div(itm)
{
	if(!itm)
		return;
	itm.style.display="";
}

function PopUp(url,name,width,height)
{
	if(!width)
		width=Math.round(screen.width/4);
	if(!width)
		height=Math.round(screen.height/4);
	var x=(screen.width-width)/2;
		y=(screen.height-height)/2;
	return window.open(url,name,'width='+width+',height='+height+',left='+x+',top='+y+',resizable=yes,scrollbars=yes,location=no,directories=no,status=no,menubar=no,toolbar=no');
}

function stacksize(thearray)
{
	for(i=0;i<thearray.length;i++)
	{
		if((thearray[i]=="")||(thearray[i]==null)||(thearray=='undefined'))
		{
			return i;
		}
	}
	return thearray.length;
}

function global_cancel_bubble(obj,extra)
{
	if(!obj||is_ie)
	{
		if(extra)
		{
			window.event.returnValue=false;
		}
		window.event.cancelBubble=true;
		return window.event;
	}
	else
	{
		obj.stopPropagation();
		if(extra)
		{
			obj.preventDefault();
		}
		return obj;
	}
}
