var input_red = 'input-warn';
var input_green = 'input-ok';
var input_ok_box = 'input-ok-content';
var input_warn_box = 'input-warn-content';
var img_blank = 'blank.gif';
var img_tick = 'aff_tick.gif';
var img_cross = 'aff_cross.gif';
var uagent = navigator.userAgent.toLowerCase();
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_webtv = (uagent.indexOf('webtv') != -1);
var is_ie = ((uagent.indexOf('msie') != -1) && (!is_opera) && (!is_safari) && (!is_webtv));
var is_ie4 = ((is_ie) && (uagent.indexOf("msie 4.") != -1));
var is_ie7 = ((is_ie) && (uagent.indexOf("msie 7.") != -1));
var is_moz = (navigator.product == 'Gecko');
var is_ns = ((uagent.indexOf('compatible') == -1) && (uagent.indexOf('mozilla') != -1) && (!is_opera) && (!is_webtv) && (!is_safari));
var is_ns4 = ((is_ns) && (parseInt(navigator.appVersion) == 4));
var is_win = ((uagent.indexOf("win") != -1) || (uagent.indexOf("16bit") != -1));
var is_mac = ((uagent.indexOf("mac") != -1) || (navigator.vendor == "Apple Computer, Inc."));
var ua_vers = parseInt(navigator.appVersion);
var ipb_pages_shown = 0;
var ipb_pages_array = new Array();
var ipb_skin_url = ipb_skin_url ? ipb_skin_url: ipb_var_image_url;
function gbl_check_search_box() {
	try {
		var _cb = document.getElementById('gbl-search-checkbox');
		var _fd = document.getElementById('gbl-search-forums');
		if (_cb && _cb.checked && ipb_input_f) {
			_fd.value = ipb_input_f;
		} else {
			_fd.value = 'all';
		}
	} catch(error) {}
};
function show_inline_messages() {
	var _string = window.location.toString();
	var _msg_box = null;
	if (_string.indexOf('?___msg=') != -1 || _string.indexOf(';___msg=') != -1 || _string.indexOf('&___msg=') != -1) {
		try {
			if (parent.document.getElementById('ipd-msg-text')) {
				_msg_box = parent.document.getElementById('ipd-msg-text');
			} else {
				_msg_box = document.getElementById('ipd-msg-text');
			}
		} catch(error) {
			alert(error);
		}
		var message = _string.replace(/^.*[\?;&]___msg=(.+?)(&.*$|$)/, "$1");
		message = unescape(message);
		if (message_pop_up_lang[message]) {
			try {
				_msg_box.innerHTML = message_pop_up_lang[message];
				centerdiv = new center_div();
				centerdiv.divname = 'ipd-msg-wrapper';
				centerdiv.move_div();
				var _this_to = setTimeout("hide_inline_messages_instant()", 2000);
			} catch(anerror) {
				alert(message_pop_up_lang[message]);
			}
		}
	}
};
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 iframe_include() {
	this.iframe_id = null;
	this.iframe_obj = null;
	this.iframe_add_to_div = null;
	this.iframe_add_to_div_obj = null;
	this.iframe_main_wrapper = null;
	this.iframe_classname = 'GBL-component-iframe';
	this.ok_to_go = 1;
	this.iframe_height = 300;
	this.ajax = '';
};
iframe_include.prototype.init = function() {
	try {
		this.iframe_add_to_div_obj = document.getElementById(this.iframe_add_to_div);
	} catch(error) {
		this.ok_to_go = 0;
	}
};
iframe_include.prototype.include = function(url) {
	if (!this.ok_to_go) {
		return false;
	}
	var iheight = parseInt(this.iframe_add_to_div_obj.style.height);
	var iwidth = parseInt(this.iframe_add_to_div_obj.style.width);
	if (this.iframe_obj) {
		this.iframe_add_to_div_obj.removeChild(this.iframe_obj);
	}
	this.iframe_obj = document.createElement('IFRAME');
	this.iframe_obj.src = url;
	this.iframe_obj.id = this.iframe_id;
	this.iframe_obj.name = this.iframe_id;
	this.iframe_obj.scrolling = 'no';
	this.iframe_obj.frameBorder = 'no';
	this.iframe_obj.border = '0';
	this.iframe_obj.className = this.iframe_classname;
	this.iframe_obj.style.width = iwidth ? iwidth + 'px': '100%';
	this.iframe_obj.style.height = iheight ? iheight - 5 + 'px': this.iframe_height + 'px';
	this.iframe_obj.style.overflow = 'hidden';
	this.iframe_obj.style.padding = '0px';
	this.iframe_obj.style.margin = '0px';
	this.ajax = new ajax_request();
	this.iframe_add_to_div_obj.style.padding = '0px';
	this.iframe_add_to_div_obj.style.margin = '0px';
	if (is_ie && !is_ie7) {
		this.iframe_add_to_div_obj.style.paddingLeft = '6px';
		this.iframe_add_to_div_obj.style.paddingRight = '6px';
	}
	this.iframe_obj.iframe_loaded = 0;
	this.iframe_obj.iframe_init = 0;
	this.iframe_obj._this = this;
	this.iframe_add_to_div_obj.style.overflow = '';
	this.iframe_add_to_div_obj.appendChild(this.iframe_obj);
	this.ajax.show_loading(ajax_load_msg);
	if (is_ie) {
		this.iframe_obj.allowTransparency = true;
		this.iframe_obj.onreadystatechange = this.iframe_on_load_ie;
	} else {
		this.iframe_obj.onload = this.iframe_onload;
	}
};
iframe_include.prototype.iframe_onload = function(e) {
	var _document = this._this.iframe_obj.contentDocument;
	if (is_safari) {
		_document = window.frames[this.id].document;
	}
	if (!this.iframe_init) {
		this.iframe_init = 1;
		this.iframe_loaded = 1;
		_document.onmousedown = menu_action_close;
	} else {
		this.iframe_loaded = 1;
		_document.onmousedown = menu_action_close;
	}
	this._this.ajax.hide_loading();
	try {
		_document.getElementsByTagName('body')[0].style.padding = '0px';
		_document.getElementsByTagName('body')[0].style.margin = '0px';
	} catch(error) {}
	var _new_height = parseInt(_document.getElementById(this._this.iframe_main_wrapper).offsetHeight);
	if (_new_height > 0) {
		if (is_safari) {
			_new_height += 3;
		}
		this._this.iframe_obj.style.height = _new_height + "px";
		this._this.iframe_add_to_div_obj.style.height = _new_height + "px";
	}
	var style = document.getElementsByTagName('style');
	var _new_style = '';
	for (i in style) {
		_new_style += "\n" + style[i].innerHTML;
	}
	try {
		_document.getElementsByTagName('style')[0].innerHTML = _new_style;
	} catch(error) {}
};
iframe_include.prototype.iframe_on_load_ie = function(e) {
	if (this.readyState == 'complete') {
		var _document = '';
		if (this._this.iframe_obj.contentWindow) {
			_document = this._this.iframe_obj.contentWindow.document;
		} else if (this._this.iframe_obj.document) {
			_document = this._this.iframe_obj.document;
		} else {
			_document = window.frames[this.id].document;
		}
		if (!this.iframe_init) {
			this.iframe_init = 1;
			this.iframe_loaded = 1;
			_document.onmousedown = menu_action_close;
		} else {
			this.iframe_loaded = 1;
			_document.onmousedown = menu_action_close;
		}
		var style = document.getElementsByTagName('style');
		var _new_style = '';
		for (i in style) {
			if (style[i].innerHTML) {
				_new_style += "\n" + style[i].innerHTML;
			}
		}
		var _urls = _new_style.match(/@import\s+?url\(\s+?['"](.+?)['"]\s+?\);/ig);
		if (_urls && _urls.length) {
			for (i = 0; i <= _urls.length; i++) {
				if (typeof(_urls[i]) != 'undefined') {
					_urls[i] = _urls[i].replace(/@import\s+?url\(\s+?['"](.+?)['"]\s+?\);/ig, "$1");
					if (typeof(_urls[i]) != 'undefined') {
						_document.createStyleSheet(_urls[i]);
					}
				}
			}
		}
		this._this.ajax.hide_loading();
		try {
			_document.getElementsByTagName('body')[0].style.padding = '0px';
			_document.getElementsByTagName('body')[0].style.margin = '0px';
		} catch(error) {}
		var _new_height = parseInt(_document.getElementById(this._this.iframe_main_wrapper).offsetHeight);
		var _new_width = parseInt(_document.getElementById(this._this.iframe_main_wrapper).offsetWidth);
		if (_new_height > 0) {
			this._this.iframe_obj.style.height = _new_height + "px";
			this._this.iframe_add_to_div_obj.style.height = _new_height + "px";
		}
		if (_new_width > 0) {
			this._this.iframe_obj.style.width = _new_width + "px";
			this._this.iframe_add_to_div_obj.style.width = _new_width + "px";
		}
	}
};
function ie_fix_png() {
	if (is_ie) {
		document.onreadystatechange = ie_fix_png_do;
	}
}
function ie_fix_png_do() {
	if (document.readyState == 'complete') {
		var pos = navigator.userAgent.indexOf("MSIE ");
		var version = navigator.userAgent.substring(pos + 5);
		var blanky = ipb_skin_url + "/blank.gif";
		var _sw = screen.width * (parseInt(ipsclass.settings['resize_percent']) / 100);
		if (pos == -1) {
			return false;
		}
		if (! ((version.indexOf("5.5") == 0) || (version.indexOf("6") == 0)) && (navigator.platform == ("Win32"))) {
			return;
		}
		var images = document.getElementsByTagName('IMG');
		var _len = images.length;
		if (_len) {
			for (var i = 0; i < _len; i++) {
				if (images[i].src.match(/\.png$/)) {
					var element = images[i];
					var _width = 0;
					var _height = 0;
					var _src = 0;
					element._width = element._width ? parseInt(element._width) : 0;
					element._resized = parseInt(element._resized);
					if (!element.style.width) {
						_width = element.width;
					}
					if (!element.style.height) {
						_height = element.height;
					}
					_src = element.src;
					if (_width < _sw && !element._resized && element._width < _sw) {
						element.src = blanky;
						if (_width) {
							element.style.width = _width + "px";
						}
						if (_height) {
							element.style.height = _height + "px";
						}
						element.runtimeStyle.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + _src + "',sizingMethod='scale')";
					} else {}
				}
			}
		}
	}
}
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 add_shadow(wrapname, divname) {
	var divobj = document.getElementById(divname);
	var wrapobj = document.getElementById(wrapname);
	if (is_ie) {
		wrapobj.className = 'shadow-ie';
		wrapobj.style.width = divobj.offsetWidth + 1 + 'px';
		wrapobj.style.height = divobj.offsetHeight + 1 + 'px';
	} else {
		wrapobj.className = 'shadow-moz';
		wrapobj.style.width = divobj.offsetWidth + 0 + 'px';
		wrapobj.style.height = divobj.offsetHeight + 0 + 'px';
	}
}
function global_dst_check(tzo, dst) {
	var op = tzo < 0 ? 'plus': 'minus';
	tzo = Math.abs(tzo);
	var dstoffset = Math.abs(new Date().getTimezoneOffset() / 60);
	var dstset = 0;
	var url = ipb_var_base_url + 'act=xmlout&do=dst-autocorrection&md5check=' + ipb_md5_check;
	if (op == 'plus') {
		var thisoffset = tzo - dst;
	} else {
		var thisoffset = tzo + dst;
	}
	var math = Math.abs(thisoffset - dstoffset);
	if (math != 0) {
		try {
			xml_dst_set(url + '&xml=1');
			dstset = 1;
		} catch(e) {
			dstset = 0;
		}
		if (dstset == 0) {
			window.location = url;
		}
	}
}
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 change_cell_color(id, cl) {
	itm = my_getbyid(id);
	if (itm) {
		itm.className = cl;
	}
}
function togglecategory(fid, add) {
	saved = new Array();
	clean = new Array();
	if (tmp = ipsclass.my_getcookie('collapseprefs')) {
		saved = tmp.split(",");
	}
	for (i = 0; i < saved.length; i++) {
		if (saved[i] != fid && saved[i] != "") {
			clean[clean.length] = saved[i];
		}
	}
	if (add) {
		clean[clean.length] = fid;
		my_show_div(my_getbyid('fc_' + fid));
		my_hide_div(my_getbyid('fo_' + fid));
	} else {
		my_show_div(my_getbyid('fo_' + fid));
		my_hide_div(my_getbyid('fc_' + fid));
	}
	ipsclass.my_setcookie('collapseprefs', clean.join(','), 1);
}
function locationjump(url) {
	window.location = ipb_var_base_url + url;
}
function chooseskin(obj) {
	choosebox = obj.options[obj.selectedIndex].value;
	extravars = '';
	if (choosebox != -1 && !isNaN(choosebox)) {
		if (document.skinselectorbox.skinurlbits.value) {
			extravars = '&' + document.skinselectorbox.skinurlbits.value;
			extravars = extravars.replace(/setskin=\d{1,}/g, '');
			extravars = extravars.replace(/skinid=\d{1,}/g, '');
			extravars = extravars.replace(/cal_id=&/g, '');
			extravars = extravars.replace(/&{1,}/g, '&');
			extravars = extravars.replace(/s=&/g, '');
		}
		locationjump('setskin=1&skinid=' + choosebox + extravars);
	}
}
function chooselang(obj) {
	choosebox = obj.options[obj.selectedIndex].value;
	extravars = '';
	if (document.langselectorbox.langurlbits.value) {
		extravars = '&' + document.langselectorbox.langurlbits.value;
		extravars = extravars.replace(/setlanguage=\d{1,}/g, '');
		extravars = extravars.replace(/cal_id=&/g, '');
		extravars = extravars.replace(/langid=\w{1,}/g, '');
		extravars = extravars.replace(/&{1,}/g, '&');
		extravars = extravars.replace(/s=&/g, '');
	}
	locationjump('setlanguage=1&langid=' + choosebox + extravars);
}
function PopUp(url, name, width, height, center, resize, scroll, posleft, postop) {
	showx = "";
	showy = "";
	if (posleft != 0) {
		X = posleft;
	}
	if (postop != 0) {
		Y = postop;
	}
	if (!scroll) {
		scroll = 1;
	}
	if (!resize) {
		resize = 1;
	}
	if ((parseInt(navigator.appVersion) >= 4) && (center)) {
		X = (screen.width - width) / 2;
		Y = (screen.height - height) / 2;
	}
	if (X > 0) {
		showx = ',left=' + X;
	}
	if (Y > 0) {
		showy = ',top=' + Y;
	}
	if (scroll != 0) {
		scroll = 1;
	}
	var Win = window.open(url, name, 'width=' + width + ',height=' + height + showx + showy + ',resizable=' + resize + ',scrollbars=' + scroll + ',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 pushstack(thearray, newval) {
	arraysize = stacksize(thearray);
	thearray[arraysize] = newval;
}
function popstack(thearray) {
	arraysize = stacksize(thearray);
	theval = thearray[arraysize - 1];
	delete thearray[arraysize - 1];
	return theval;
}
function innerhtml_template_to_html(t) {
	t = t.replace(/&lt;%(\d+?)&gt;/ig, "<%$1>");
	t = t.replace(/%3C%(\d+?)%3E/ig, "<%$1>");
	return t;
}
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;
	}
}
function _get_obj_leftpos(obj) {
	var left = obj.offsetLeft;
	while ((obj = obj.offsetParent) != null) {
		left += obj.offsetLeft;
	}
	return left;
}
function _get_obj_toppos(obj) {
	var top = obj.offsetTop;
	while ((obj = obj.offsetParent) != null) {
		top += obj.offsetTop;
	}
	return top;
}
function center_div() {
	this.divname = '';
	this.divobj = '';
	this.shimobj = '';
}
center_div.prototype.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;
};
center_div.prototype.hide_div = function() {
	try {
		if (!this.divobj) {
			return;
		} else {
			this.divobj.style.display = 'none';
		}
	} catch(e) {
		return;
	}
};
center_div.prototype.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;
};
