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(var i=0;i<_tmp.length;i++) {
			if(_tmp[i].match(new RegExp(ipb_var_cookieid+".*$"))){var _data=_tmp[i].split('=');
	var _key=this.trim(_data[0]);var _value=unescape(this.trim(_data[1]));
	if(_key&&(!this.in_array(_key,this.ignore_cookies))) {
		this.cookies[_key.replace(ipb_var_cookieid,'')]=_value;}
	}}}
	_tmp=null;};
	
	this.trim=function(text){if(typeof(text)=='undefined'){return '';}text=text.replace(/^\s+/,'');return text.replace(/\s+$/,'');};
	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.htmlspecialchars=function(text){text=text.replace( /</g,'&lt;');text=text.replace( />/g,'&gt;');text=text.replace( /"/g,'&quot;');return text;};this.un_htmlspecialchars=function(text){text=text.replace( /&lt;/g,'<');text=text.replace( /&gt;/g,'>');text=text.replace( /&quot;/g,'"');return text;};
	this.get_editor_contents=function(editor_id,editor_array){var aIPS_editor=editor_array?editor_array:IPS_editor;
	if(!editor_id){for(var i in aIPS_editor){editor_id=i;break;}}return aIPS_editor[editor_id].editor_get_contents;};
	this.add_editor_contents=function(text,editor_id,editor_array){var aIPS_editor=editor_array?editor_array:IPS_editor;
	if(!editor_id){for(var i in aIPS_editor){editor_id=i;break;}}return aIPS_editor[editor_id].insert_text(text);};
	this.convert_saved_tags_to_display_tags=function(text){text=text.replace( /(<|&lt;|&#60;)!--/,"{");
	text=text.replace( /--(>|&gt;|&#62;)/,"}");return text;};
	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,'&');
		if(full) {
			window.location.href=url;
		} else {
			window.location.href=ipb_var_base_url+url;
		}
	};
	this.confirm_action = function(url,msg) {
		if(!msg) {
			msg='PLEASE CONFIRM:\nOK to proceed?';
		}
		if(url) {
			url=url.replace('&amp;','&');
		} else {
			url='';
		}
		if(confirm(msg)) {
			window.location.href=url;
		} else {
			alert('OK, action cancelled!');
			return false;
		}
		return true;
	};
	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');return false;};this.set_unselectable=function(obj){if(!is_ie4&&typeof(obj.tagName)!='undefined'){if(obj.hasChildNodes()){for(var i=0;i<obj.childNodes.length;i++){this.set_unselectable(obj.childNodes[i]);}}obj.unselectable='on';}};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(obj,extra){if(extra!==false){extra=true;}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;}};this.cancel_bubble_all=function(obj){return ipsclass.cancel_bubble(obj,true);};
	this.cancel_bubble_low=function(obj){return ipsclass.cancel_bubble(obj,false);};this.my_getcookie=function(name){return this.cookies[name];};this.my_setcookie=function(name,value,sticky){expire="";domain="";path="/";if(sticky){expire="; expires=Wed, 1 Jan 2020 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;};
	this.array_stacksize=function(thearray){for(i=0;i<thearray.length;i++){if((thearray[i]=="")||(thearray[i]==null)||(thearray=='undefined')){return i;}}return thearray.length;};this.array_pushstack=function(thearray,newval){var arraysize=this.array_stacksize(thearray);thearray[arraysize]=newval;};this.array_popstack=function(thearray){var arraysize=this.array_stacksize(thearray);var theval=thearray[arraysize-1];delete thearray[arraysize-1];return theval;};
}