	var sidebar_original_height=0;
	$(function() {
		/**
		 * Fix Height Sidebar
		 */
		sidebar_original_height = $('#secondaryContent .sidebar').height();
		resizeSidebar(sidebar_original_height,true);
		/**
		 * Inline Editing
		 */
		$('.edit_hub_inline').live("click",function() {
			var type = $(this).attr('href').replace(/.*\=/,'');
			switch(type) {
				case 'hub_name':
					placeholder = '#header h1';
					break;
				case 'hub_tagline':
					placeholder = '#header p';
					break;
				case 'about':
					placeholder = '#about div.about_hub';
					break;
			}
			$(placeholder).load($(this).attr('href'));
			return false;
		});	
		
		$('.edit_user_inline').live("click",function() {
			var type = $(this).attr('href').replace(/.*\=/,'');
			switch(type) {
				case 'name':
					placeholder = '#realnameUser p';
					break;
				case 'location':
					placeholder = '#locationUser p';
					break;
				case 'about':
					placeholder = '#aboutUser p';
					break;
				case 'links':
					placeholder = '#linksUser ul';
					break;
			}
			$(placeholder).load($(this).attr('href'));
			return false;
		});
		
		/**
		 * Voting and reporting
		 */
		$('.vote').live("click",function() {
			$$ = $(this);
			total_score = $$.parent().parent().parent().find('.answer_avatar .answer_score');
			var href = $(this).attr('href').replace(/#/,'');
			href = href.split(/_/);
			type = href[0];
			answer_id = href[1];
			$.post('/rate.php',
				{ type:type, answer_id:answer_id },
				function(data) {
					if(trim(data) == 'ok') {
						$$.addClass('active');
						if(type == 'notHelpful') {
							totalcnt = parseInt(total_score.html());
							totalcnt--;
						}else{
							totalcnt = parseInt(total_score.html());
							totalcnt++;
						}
						//$$.html(html);
						total_score.html(totalcnt);
					}					
				});
			return false;
		});
		
		$('.report').live("click",function() {
			$$ = $(this);
			var href = $(this).attr('href');
			$.post(href,{},
				function(data) {
					//do nothing for time being
					if(trim(data) == 'ok')
						$$.removeClass('report').addClass('reported');
				});
			return false;
		});
		
		$('ul#tags_autosuggest li').live("click",function() {
			input = $('input#tags');
			$(this).find('strong').remove();
			txt="";
			tags = input.val().split(',');
			tags.pop();
			tags.push($(this).html());
			for(i=0;i < tags.length;i++) {
				txt += trim(tags[i])+", ";
			}
			input.val(txt).focus();
			$(this).parent().html(' ').hide();				
			return false;			
		});
		
		$('ul#new_tag_autosuggest li').live("click",function() {
			input = $('input#new_tag');
			$(this).find('strong').remove();
			txt="";
			tags = input.val().split(',');
			tags.pop();
			tags.push($(this).html());
			for(i=0;i < tags.length;i++) {
				txt = trim(tags[i]);
			}
			input.val(txt).focus();
			$(this).parent().html(' ').hide();			
			return false;			
		});
		
		$('#welcome .close').live("click",function() {
			$$ = $(this);
			
			body = $('body');
			bg_pos = body.css('background-position');
			body.css({'background-position':bg_pos})
			
			id = $$.parent().attr('id');
			
			$.post('/session_store.php',{ 'key':'notifications_seen','key2':id });
			body.animate({'background-position':'50% 0px'},750).find('#welcome_wrap').animate({'margin-top':'-105px'},750);
			return false;
		});
		$('#tooltip .close').live("click",function() {
			$this = $(this);
			id = $this.parent().attr('id');
			/*
			if(id == 'tooltip') {
				key2 = id+$('#'+id+' h2').html().replace(/ /,'_');
				$.post('/session_store.php',{ 'key':'notifications_seen','key2':key2 });
				switch($('#'+id+' h2').html().replace(/ /,'_')) {
					case 'Invite':
						$('#tooltip').load('/modules/tooltip.php',{'tool_type':'customize'});
						return false;
						break;
					case 'Connect':
						if(user.type=='creator' && user.indexQuestions) {
							$('#tooltip').loading().load('/modules/tooltip.php',{'tool_type':'addContent'});
							$('#tooltip').addClass('sideTooltip').css({'left':contentTooltip.left,'top':contentTooltip.top});
							return false;
						}
						break;
					default:
						break;
				}
			}
			*/
			$.post('/session_store.php',{ 'key':'notifications_seen','key2':id });
			$('div#overlay').overlay(true);
			$('#'+id).fadeOut(0);
			return false;
		});
		
		$('div#overlay').click(function(ev) {	
			/*		
			tooltip = $('div#tooltip');
			if(tooltip.length) {
				key2 = 'tooltip';
				key2 += tooltip.find('h2').html().replace(/ /,'_');
				$.post('/session_store.php',{ 'key':'notifications_seen','key2':key2 });
				switch(tooltip.find('h2').html().replace(/ /,'_')) {
					case 'Invite':
						$('#tooltip').load('/modules/tooltip.php',{'tool_type':'customize'});
						return false;
						break;
					case 'Connect':
						if(user.type=='creator' && user.indexQuestions) {
							$('#tooltip').loading().load('/modules/tooltip.php',{'tool_type':'addContent'});
							$('#tooltip').addClass('sideTooltip').css({'left':contentTooltip.left,'top':contentTooltip.top});
							return false;
						}
						break;
					default:
						break;
				}
				$('div#overlay').overlay(true);
				tooltip.fadeOut(0);
				return false;
			}else 
			*/
			if($('div#square_modal_wrapper').length) {
				$('div#square_modal_wrapper div.body a.close').click();
			}else if ($('div#large_modal_wrapper').length) {
				$('div#large_modal_wrapper div.body a.close').click();
			}
		});
		
		$('div#large_modal_wrapper div.body a.close, div#square_modal_wrapper div.body a.close').live("click",function(ev) {
			var el=$(ev.target);
			if(el.hasClass('goBtn')) return;
			
			if(($('#answerit_div').length && currentPage != '/') || ($('#answerit_div').length && $('#answer_ask').is(':visible'))) {
				$('#answerit_div').css({ height:parseInt($('#answerit_div').attr('height'))+'px' });
				if($('#answerit_div').is(':visible'))
					removeCharAtCaretPos('answerit_div');
			}
			
			if($('div#square_modal').hasClass('connect')) {
				$.post('/session_store.php',{ 'key':'notifications_seen','key2':'tooltip_connect' });
				/*
				if(user.type=='creator' && user.indexQuestions) {
					if(!$('#tooltip').length)
						$('body').append('<div id="tooltip"></div>');
					$('#tooltip').loading().load('/modules/tooltip.php',{'tool_type':'addContent'});
					$('#tooltip').addClass('sideTooltip').css({'left':contentTooltip.left,'top':contentTooltip.top});
					$('div#large_modal_wrapper, div#square_modal_wrapper').fadeOut(500);
					return false;
				}
				*/
			}
			
			$('div#large_modal_wrapper, div#square_modal_wrapper').fadeOut(500);
			$('div#overlay').overlay(true);
		});
		
		$('.no_thanks').live("click",function() {
			key2 = 'tooltip'+$('#tooltip h2').html().replace(/ /,'_');
			$.post('/session_store.php',{ 'key':'notifications_seen','key2':key2 });
			switch($('#tooltip h2').html().replace(/ /,'_')) {
				case 'Invite':
					$('#tooltip').load('/modules/tooltip.php',{'tool_type':'customize'});
					break;
				case 'Connect':
					if(user.type=='creator' && user.indexQuestions) {
						$('#tooltip').loading().load('/modules/tooltip.php',{'tool_type':'addContent'});
						$('#tooltip').addClass('sideTooltip').css({'left':contentTooltip.left,'top':contentTooltip.top});
					}
					break;
				default:
					break;
			}
			$this = $(this);
			$('div#overlay').overlay(true);
			time=0;
			$('#tooltip').fadeOut(0);
			return false;
		});
	});

	function changeTo(resource,tadivid,divid,aid,regex,misspell,suggested) {
		var text = document.getElementById(tadivid).innerHTML;
		var textarea = $('textarea#'+resource).attr('value');
		if(misspell!=suggested){
			if (text.match(regex)) {
				document.getElementById(tadivid).innerHTML = text.replace(regex,suggested);
				document.getElementById(resource).value = textarea.replace(regex,suggested);
	
				$('#'+aid).attr("class","suggested");
			}
		}
		else{
			if (text.match(regex)) {
				document.getElementById(tadivid).innerHTML = text.replace(regex,suggested);
				document.getElementById(resource).value = textarea.replace(regex,suggested);
	
				$('#'+aid).attr("class","");
			}
		}
	} 
	
	function spellSuggestion(resource,tadivid,divid,aid,misspell) {
		var div = document.getElementById(divid);
		var changed_spell = document.getElementById(aid).innerHTML;
	
		if (div) {
			curclass = div.className;
			curclass = curclass == 'spellsuggestion_visible' ? 'spellsuggestion_hidden' : 'spellsuggestion_visible';
			if (curclass == 'spellsuggestion_visible') {
				div.className = curclass;
				div.innerHTML = '<span style=\"color:#blue\">Loading...</span>';
				$('#'+divid).load('/modules/listspellingsuggestions.php', {resource:resource,tadivid:tadivid,divid:divid,aid:aid,misspell:misspell,changed_spell:changed_spell});
			} 
			else {
				div.className = curclass;
			}
		}
	}
	
	function hideSpellingSuggestions(divid) {
		var div = document.getElementById(divid);
		if (div) {
			div.className = 'spellsuggestion_hidden';
		}
	}
	
	function hideAllSpellingSuggestions(tadivid) {
		var text = document.getElementById(tadivid).innerHTML;
		var regex = /spellsuggestion_visible/g;
		if (text.match(/spellsuggestion_visible/g)) {
			document.getElementById(tadivid).innerHTML = text.replace(regex,"spellsuggestion_hidden ");
		}
	}
	/*
	function contributions_menu(id) {
		$(function(){
			switch(id){
				default:
				case 'questions_link':
					$('#answers_link').removeClass('active');
					$('#answers_link').addClass('inactive');
					$('#answers').hide();
					$('#questions_link').removeClass('inactive');
					$('#questions_link').addClass('active');
					$('#questions').show();
					break;
				case 'answers_link':
					$('#questions_link').removeClass('active');
					$('#questions_link').addClass('inactive');
					$('#questions').hide();
					$('#answers_link').removeClass('inactive');
					$('#answers_link').addClass('active');
					$('#answers').show();
					break;
			}
		});
	}*/

	/**
	 * Check Question
	 */
	function spellcheckQuestion (text) {
		errors_showing = $('div#q_errors').is(':visible');
		var misspells = 0;
		spell_ret = true;
		spellchecked = $('div#q_spellchecked').html();
		
		misspells = $.ajax({
			type: "POST",
			url: "/modules/listspellchecked.php",
			data: "txt=" + escape(text),
			async: false
			}).responseText;
		
		$('textarea#ask_question').hide();
		$('#qtextareadiv').show();
		$('#qtextareadiv').load('/modules/listspellcheck.php', {resource:'ask_question', tadivid:'qtextareadiv', txt:text});
					
		if(misspells){
			$('textarea#ask_question').hide();
			$('#qtextareadiv').show();
			q_errors.append('<p>Possible misspells found</p>');
			if(spellchecked != '1')
				spell_ret = false;
		}else{				
			$('textarea#ask_question').show();
			$('#qtextareadiv').hide();
		}
		
		$('div#q_spellchecked').html('1');
		return spell_ret;
	}
	
	function question_check(safe_mode) {
		var question_check_ret = true;
		
		wc = $('textarea#ask_question').wordcount();

		if(safe_mode=='on'){
			if($('textarea#ask_question').is_qa_bad() || $('textarea#ask_question').is_bad()) {
				q_errors.append("<p>Contains offensive or abusive language.</p>");
				question_check_ret = false;
			}
		}
		
		if(wc < 3) {
			q_errors.append("<p>Questions must contain 3 or more words.</p>");
			question_check_ret = false;
		} else if($('textarea#ask_question').attr('value').length < 10) {
			q_errors.append("<p>Questions must contain more than 10 characters.</p>");	
			question_check_ret = false;
		} else if($('textarea#ask_question').attr('value').length > 251) {
			q_errors.append("<p>Questions are limited to 250 characters.</p>");
			question_check_ret = false;
		}
		return question_check_ret;
	}
		
	function check_tags (safe_mode) {
		tags = $('input#tags').attr('value');

		if(safe_mode=='on'){
			if($('input#tags').is_qa_bad() || $('input#tags').is_bad()) {
				q_errors.append("<p>Tags contain offensive or abusive language.</p>");
				return false;
			}
		}

		tag_error = "<p id=\"tag_error\">You must select or enter some tags.</p>";
		q_errors.find('p#tag_error').remove();
		if(tags == '' || tags == 'Tag this question') {
			q_errors.append(tag_error);
			return false;
		}
		return true;
	}
	/*	
	function check_similarity () {
		var check_sim_ret = true;
		$.post('/check_similar.php',
			{question:$('textarea#ask_question').attr('value')},
			function(data) {
				if(data.length > 0 && data.match(/^(\d*)$/i)) {
					document.location.href = data;
				} else if(data.length > 0) {
					$('button#answerit_submit, button#ask_btn').hide();
					$('div#possible_matches ul').html(data).parents().find('div#possible_matches').show();
					check_sim_ret = false;
				} else {
					$('form#ask_answer div#q_checked').html('1');
					check_sim_ret = true;
				}
			});
		return check_sim_ret;
	}
	*/
		
	/**
	 * Check Answer
	 */
	function spellcheckAnswer () {		
		spell_ret = true;
		if (document.all)
			var text = $('div#'+answerdiv).html();
		else
			var text = $('iframe#'+answerdiv).contents().find('body').html();
		
		var misspells = 0;
		misspells = $.ajax({
			type: "POST",
			url: "/modules/listspellchecked.php",
			data: "txt="+ escape(text),
			async: false
		}).responseText;

		text = text.replace(/\n/g,"<br>");

		if ($('#toolbarandtextarea').is(':hidden')) {
			$('#textareadiv').css({ height:$('#answerit_div').css('height') }).load('/modules/listspellcheck_rte.php', {resource:'answer', tadivid:'textareadiv', txt:escape(text), rteid:answerdiv});
			$('#toolbarandtextarea').show();
			$('#answer_rte, #spellcheckdiv').hide();
			$('#textareadiv').show();
			if(misspells) {		
				$('textarea#answer_rte').hide();
				$('#textareadiv').show();
				q_errors.append('<p>Possible misspells found</p>');
				spell_ret = false;
			}else{				
				$('#answer_rte').show();
				$('#textareadiv, #toolbarandtextarea').hide();
			}
		}
		document.getElementById('checked').innerHTML = 1;
		return spell_ret;
	}
	
	function spellcheckAnswer_qa () {
		spell_ret = true;
		if (document.all)
			var text = $('div#'+answerdiv).html();
		else
			var text = $('iframe#'+answerdiv).contents().find('body').html();
		
		var misspells = 0;
		misspells = $.ajax({
			type: "POST",
			url: "/modules/listspellchecked.php",
			data: "txt="+ escape(text),
			async: false
		}).responseText;

		text = text.replace(/\n/g,"<br>");
		
		if ($('#toolbarandtextarea').is(':hidden')) {
			$('#textareadiv').css({ height:$('#answerit_div').css('height') }).load('/modules/listspellcheck_rte.php', {resource:'answer', tadivid:'textareadiv', txt:escape(text), rteid:answerdiv});
			$('#toolbarandtextarea').show();
			$('#answer_rte, #spellcheckdiv').hide();
			$('#textareadiv').show();
			if(misspells) {		
				$('#answer_rte').hide();
				$('#textareadiv').show();
				a_errors.append('<p>Possible misspells found</p>');
				spell_ret = false;
			}else{				
				$('#answer_rte').show();
				$('#toolbarandtextarea, #textareadiv').hide();
			}
		}else if(misspells) {		
			a_errors.append('<p>Possible misspells found</p>');
			spell_ret = false;
		}
		if($('#checked').html()=='1') return true;
		else document.getElementById('checked').innerHTML = 1;
		return spell_ret;
	}
	
	function answer_check(answer, safe_mode) {
		var answer_check_ret = true;
		
		wc = answer.wordcount();
		
		if(safe_mode=='on'){
			if(answer.is_qa_bad() || answer.is_bad()) {
				a_errors.append("<p>Contains offensive or abusive language.</p>");				
			}
		}
		
		return answer_check_ret;
	}
	
	function trim (str) {
		return str.replace(/^\s+|\s+$/g,"");
	}

	(function($) {
		$.fn.wordcount = function() {
			return this.attr('value').split(" ").length;
		};
	
		$.fn.is_qa_bad = function() {
			bad = /\b(?:tits|shit|sex|penis|cock|cocks|dick|dicks|viagra|masturbate|masturbation|masturbating|masterbate|masterbation|masterbating|vagina|horny|pussy|sexual\s*intercourse|suck\s*dick|suck\s*my\s*dick|virginity|swallow\s*cum|nude\s*pics|cum|clitoris|anal|rape|child\s?porn)\b/ig;
			return this.attr('value').match(bad);
		};
		
		$.fn.is_bad = function() {
			bad = /\b(3some|3somes|4some|4somes|abso\s*fucking\s*lutely|A-hole|anja|ardcore|arse\s*bandit|arse\s*fuck|arse\s*fucker|arse\s*fucking|arse\s*hole|arse\s*piece|arse\s*pieces|arse\s*play|arse\s*stabber|arse\s*tang|ash01e|ash0les|asho1e|asho1es|asinine|ass\s*boy|ass\s*fuck|ass\s*fucker|ass\s*goblin|ass\s*leech|ass\s*monkey|ass\s*munch|ass\s*plug|ass\s*rammer|ass\s*rape|ass\s*wad|assh01e|assh0les|asshat|assho1e|assho1es|asspirate|assy|b10w|b10wj0b|b10wj0bs|b10wjob|b10wjobs|b10wme|b1ow|b1owj0b|b1owj0bs|b1owjob|b1owjobs|b1owme|bare\s*naked|bashing\s*the\s*bishop|beauns|beef\s*curtains|beef\s*cushion|beef\s*cushions|beefy\s*curtain|beefy\s*curtains|behymen|bell\s*end|biatch|big\s*dik|big\s*endered|big\s*juicy\s*nut|biotch|cheap\s*cialis|biow|biowjob|bishop\s*basher|black\s*on\s*blonde|black\s*on\s*blondes|blacks\s*and\s*blondes|blo\s*job|blo\s*jobs|bloe\s*job|bloe\s*jobs|blondage|blou\s*job|blouser|blow\s*job|blwjob|bo0b|bo0bs|bolicks|bollicks|bollock|bollocked|bollocker|bollocking|bollocks|bollox|bolwjob|bolwjobs|bootie\s*stabber|booze\s*hag|bordello|bordellos|bottie|bottie\s*bang|bottie\s*banging|bottie\s*basher|boy\s*chik|boy\s*dyke|boy\s*fag|boy\s*love|bullshit|bum\s*bandit|bum\s*bandits|bum\s*banditz|bum\s*basher|bum\s*bashing|bum\s*berries|bum\s*berry|bum\s*burglar|bum\s*chumer|bum\s*chumming|bum\s*chums|bum\s*chumz|bum\s*feeler|bum\s*fuck|bum\s*fucker|bum\s*fucking|bum\s*fucks|bum\s*fuckz|bum\s*hole|bum\s*holerous|bum\s*kisser|bum\s*lick|bum\s*licker|bum\s*muncher|bum\s*munching|bum\s*raider|bum\s*raiding|bum\s*rammer|bum-bandit|bumchum|bumpoling|butt\s*bandit|butt\s*bandits|butt\s*basher|butt\s*berries|butt\s*berry|butt\s*bogie|butt\s*buffer|butt\s*buffing|butt\s*burnisher|butt\s*burnishing|butt\s*butter|butt\s*buttie|butt\s*butty|butt\s*cakes|butt\s*cheek|butt\s*cheese|butt\s*crack|butt\s*face|butt\s*floss|butt\s*fuc|butt\s*fuck|butt\s*fucker|butt\s*hair|butt\s*hairs|butt\s*head|butt\s*hole|butt\s*hole\s*engineer|butt\s*hole\s*surfer|butt\s*kiss|butt\s*kisser|butt\s*lick|butt\s*licking|butt\s*munch|butt\s*muncher|butt\s*munching|butt\s*party|butt\s*pirate|butt\s*plug|butt\s*plugger|butt\s*plugs|butt\s*poler|butt\s*poling|butt\s*rammer|butt\s*ramming|butt\s*sex|butt\s*sniff|butt\s*wipe|butt\s*wiping|butter\s*bags|buttoil|buxom|buxum|c0ck|c0cks|c0cksucker|c1it|c1its|carpet\s*lick|carpet\s*licker|carpet\s*lickers|carpet\s*mowers|chocolate\s*funnel|chocolate\s*grinder|chocolate\s*groove|chocolate\s*hose|chocolate\s*junction|chocolate\s*lane|chocolate\s*mincer|chocolate\s*packer|chocolate\s*prodder|chocolate\s*ring|chocolate\s*road|chocolate\s*shoveller|chocolate\s*shovelling|chocolate\s*shute|chocolate\s*slide|chocolate\s*squeezer|chocolate\s*starfish|chocolate\s*tunnel|cock\s*gobbler|cock\s*licker|cock\s*old|cock\s*ring|cock\s*smoker|cock\s*sniffer|cock\s*suck|cock\s*sucker|cock\s*sucking|cock\s*tease|cock\s*teaser|cock\s*teasing|cockish|cocks\s*man|cocksmith|copulating|Suck\s*his\s*dick|corn\s*hole|cornh01e|cornh0le|cornho1e|corydon|cosset|cottaging|courtesan|cowper|crack\s*a\s*fat|crap\s*bag|crap\s*hatch|crap\s*head|crap\s*less|crap\s*sack|crapping|cream\s*stick|creme\s*pie|cremed|crepitate|cretin|cross\s*dress|cthrough|cthru|cuck|cuck\s*hold|cuck\s*my\s*sock|cuck\s*old|cuckers|cum\s*all\s*over|cum\s*bag|cum\s*bath|cum\s*bucket|cum\s*burp|cum\s*cum\s*lick|cum\s*drenched|cum\s*drinking|cum\s*dripping|cum\s*eating|cum\s*filled|cum\s*guzzler|cum\s*guzzling|cum\s*in\s*mouth|cum\s*juice|cum\s*licker|cum\s*lickers|cum\s*lips|cum\s*loving|cum\s*sack|cum\s*shot|cum\s*slut|cum\s*sluts|cum\s*sock|cum\s*stain|cumm|cumming|cummm|cummmm|cums\s*over|cun\s*thair|cunalingus|cundrum|cunny|cunt|cunt\s*cream|cunt\s*face|cunt\s*juice|cunt\s*kissing|cunt\s*lapping|cunt\s*licker|cunt\s*rag|cunt\s*sniffer|cunted|cunting|cunty|cunty\s*balls|curl\s*one|curl\s*one\s*off|curl\s*one\s*out|curo|cut\s*the\s*cheese|cyber\s*skin|d0ng|dacryphilia|daddle|daisy\s*chain|damit|dammit|damn|damne|damnit|dangle\s*berrie|dangle\s*berries|dangle\s*berry|dangler|fking|darkey|darkeys|darkie|darky|darnit|date\s*rape|daty|dbsm|deadeye|deep\s*throat|deep\s*tongue|defloration|deflower|depuscelate|dermophiliac|des\s*nudas|des\s*nudos|di1d0|di1d0s|di1do|di1dos|dic\s*face|dick\s*brain|dick\s*chode|dick\s*dagger|dick\s*for\s*a\s*brain|dick\s*head|dick\s*lick|dick\s*licker|dick\s*taster|dick\s*tease|dick\s*teaser|dick\s*teasing|dick\s*wad|dick\s*warmer|dick\s*weed|diddie\s*bash|diddies|diddies\s*ride|diddle|didlo|didlos|diesel\s*dyke|dik\s*blo|dik\s*blow|dikk|dikke|dildo|dildo\s*fucker|dildo\s*fuckers|dildo\s*fuckerz|dildos|dildoz|dilldo|dilldoe|dilldos|dilly|ding\s*dong|dingaling|dingle\s*berrie|dingle\s*berries|dingle\s*berry|dingus|dioning|dip\s*shit|dirt\s*box|disrobeditsy|dlldo|doggie\s*style|doggy\s*style|domanation|domanatrix|domina|dominatrix|domme|donger|doo\s*flicker|pussy|double\s*dildo|double\s*dong|double\s*fuck|double\s*pen|double\s*penetration|douche\s*bag|douching|down\s*blouse|dragette|dry\s*boake|dry\s*cunt|dry\s*fanny|dry\s*fuck|dry\s*fucked|dry\s*fucking|dry\s*humping|dry\s*pussy|dry\s*ride|dry\s*riding|dry\s*sex|dry\s*wretch|dual\s*vibrator|dum\s*shit|dumb\s*ass|dumb\s*shit|dumby|dummock|dung\s*shute|dyke\s*tyke|dykon|dystychiphilia|easy\s*lay|eat\s*me|ecchi|ecksposd|ecksposed|Tit\s*Wanks|ejac|ejacs|ejact|ejacul|ejaculat|ejakulation|electrotorture|encraty|ephebophile|ephebophilia|epicene|epicente|epigamic|erastes|erectionring|eriola|eros|erotasy|erotc|erotca|erotophilia|erotophobia|face\s*fuck|face\s*sit|face\s*sitting|facking|fag\s*dyke|faga\s*teeny|faggit|faggotry|faggoty|fancy\s*a\s*shag|farm\s*love|fart\s*knocker|fartle\s*berries|fat\s*ass|fcuk|fcuked|fcuker|fcuking|feck\s*hell|fecker|fecking|fedish|fedishes|feet\s*licking|fegelah|feigele|feki|felatio|felch|felching|fellacio|fellare|fellate|fellatio|fellato|fellator|fellatrice|fellatrix|feltch|feltch\s*tube|feltcher|feltching|female\s*cir|fesse|fetisch|fetsih|fettish|feygelah|fick|ficken|fiki|finger\s*fuck|fish\s*flap|fish\s*flaps|fish\s*lip|fish\s*lips|fist\s*fuck|fisting|cums|five\s*some|fluck|flucken|flucker|fluckin|flucking|foot\s*fetish|foot\s*job|foot\s*jobs|foot\s*licking|forced\s*sex|forfikig|fother\s*mucker|four\s*some|froggy\s*style|fuc\s*face|fuc\s*off|fuc\s*q|fuc\s*qu|fuc\s*ya|fuc\s*you|fuc\s*you\s*bich|fucayou|fucc\s*wit\s*me|fuccer|fucck|fuccker|fucckin|fuccking|fucd|fucing|fuck\w*|small\s*dicks|Fu\s*ck|cheap\s*viagra|shit|masturbate|clitoris|vagina|masterbate|cock|tits|retard|nigger|fucq\s*dat|fucq\s*dis|fuct|fuctup|fucx\s*you|fud\s*rucker|fudge\s*hole|fudge\s*packer|fudge\s*pot|fugly|fuick|fuicker|fuicking|fuk|fuking|fun\s*bags|funch|funck|funcker|funcking|funker|fur\s*burger|furry\s*hoop|furvert|furzi|futher\s*mucker|futt\s*buck|futy|fuuck|fuucker|fuucking|fuuk|fuuker|fuuking|fuzz\s*nuts|gai\s*boy|gang\s*ban|gang\s*bang|gang\s*banger|gang\s*bangers|gang\s*banging|gang\s*bank|gang\s*rape|gang\s*shag|gaping\s*axe\s*wound|gaping\s*wound|gargantuan\s*dick|gargantuan\s*tits|gash\s*fister|gash\s*fucker|gash\s*licker|gash\s*sucker|gay\s*boy|gay\s*rape|gay\s*wad|gaybie|gayola|gaytionary|gazongas|gazongers|gazooney|gazoopy|gazungas|geil|gender\s*fuck|gender\s*phobia|gerry\s*helmet|get\s*bent|gigantic\s*dick|girdle\s*groper|girl\s*2\s*girl|girl\s*fag|girlery|girlie\s*boy|girlie's|girly\s*boy|girsegum|girth\s*gobbler|girth\s*licker|girth\s*lover|girth\s*muncher|girth\s*swallower|gleet|glory\s*hole|gob\s*job|gob\s*shite|god\s*damn|godam|godemiche|gokkun|golden\s*drizzler|golden\s*rain|golden\s*screw|golden\s*shower|gomorrahy|group\s*grope|group\s*sex|group\s*some|grrl|gynotikolobomassophilia|h00ter|h00ters|h01e|h0m0|h0m0s|h0mo|h0mos|h0oter|h0oters|haard\s*core|hair\s*pie|hand\s*job|hand\s*jobs|har0d|har0ds|harcore|hard\s*bodies|hard\s*cor|hard-on|hiardcore|hidethesalami|ho0ter|ho0ters|hom0|hom0s|homotrash|hordcore|hork|horndog|horse\s*dick|horse\s*shit|hot\s*and\s*wet|hot\s*bodies|hot\s*house\s*wife|hot\s*karl|hot\s*teens|hot\s*wife|hot\s*wives|hot\s*xex|hoyden|hradcore|huge\s*black|hugh\s*jaynus|hughjas|hum\s*job|humongous\s*dick|humongous\s*tits|hung\s*like\s*a\s*bull|hung\s*like\s*a\s*donkey|hung\s*like\s*a\s*horse|hung\s*like\s*an\s*elephant|hunkers|hunnies|huntdog|husler|in\s*your\s*butt|irrumatio|is\s*good\s*for\s*a\s*shag|itty\s*bitty\s*tittie|itty\s*bitty\s*titty|jack\s*ass|jack\s*off|jack\s*shit|jerk\s*off|jew\s*bag|jew\s*boy|jism|jiz|jizm|jizz|jizzum|jobby|jobby\s*eater|jobby\s*gobbler|jobby\s*jobber|jobby\s*licker|jobby\s*muncher|jockam|jungle\s*bunnies|jungle\s*bunniez|jungle\s*bunny|juve|k0ck|kaco|kiddie\s*porn|kiss\s*my\s*ass|kissing\s*the\s*pink|knicker\s*sniffer|knob\s*gobbler|knob\s*licker|knob\s*muncher|knob\s*nibbler|knob\s*sucker|knob\s*swallower|knob\s*tease|knob\s*teaser|knob\s*teasing|knob\s*tickler|kum\s*chot|kum\s*drink|kum\s*lick|kum\s*schot|kum\s*shot|kumm|kundt|kunt|kurami|kwazakoo|kweef|kwikee|kyke|leg\s*licker|leg\s*spread|legs\s*appart|lez|lezbo|lezbos|lezze|lezzes|lezzie|lezzies|lezzo|lezzy|lic\s*my\s*dik|lic\s*my\s*nuts|lic\s*my\s*sack|lick\s*box|lick\s*butt|lick\s*me|lick\s*my|lick\s*pusy|licmy\s*bawlz|liesban|liesbans|light\s*in\s*the\s*loafer|lik\s*my\s*bawlz|lik\s*my\s*but|lik\s*my\s*dic|lik\s*my\s*kok|lik\s*my\s*nuts|lik\s*my\s*sack|lilota|limerance|limey|limp\s*dick|limp\s*noodle|limp\s*wrist|linda\s*lovelace|lingus|liplubed|lisper|live\s*sex|log\s*licker|loilita|loilitas|loleta|loletas|loletta|lolettas|lolida|lolidas|loliita|loliitas|lolitia|lolitias|lolitta|lolittas|lollita|lollitas|lollitta|lollittas|long\s*dong\s*silver|long\s*schlong|long\s*schlong\s*silver|looner|loop\s*de\s*loop|loose\s*boy|loose\s*girl|loose\s*lady|love\s*gun\s*lovelies|love\s*jam|love\s*juice|love\s*muscle|love\s*stick|love\s*tower|love\s*tree|love\s*truncheon|love\s*tunnel|lube\s*job|M\.I\.L\.F\.|major\s*mellons|MaleDom|mammoth\s*dick|mammoth\s*tits|man\s*check|man\s*cheese|man\s*cheeze|man\s*custard|man\s*flap|man\s*flaps|man\s*flapz|man\s*sandwich|mangina|meat\s*cock|MILF|minge|minge\s*stinger|moe\s*fo|moe\s*foe|moelest|moelester|mofo|mofoe|moist\s*cunt|moist\s*pussy|moist\s*vagina|money\s*shot|monkey\s*sex|monsterous\s*dick|monterous\s*tits|mother\s*fucker|mother\s*fuckers|mother\s*fucking|muck\s*rag|mud\s*shark|muff\s*dive|muff\s*diver|muff\s*diving|muff\s*mash|muff\s*masher|muff\s*mashing|muff\s*munch|muff\s*muncher|muff\s*munching|muffer|muffs|muliberty|multi\s*gravida|musko\s*banja|mutarajjulat|mutha|muther|muther\s*focker|muther\s*fucker|naked\s*babes|nancy\s*boy|nipple\s*torture|nob\s*gobbler|nob\s*licker|nob\s*muncher|nob\s*nibbler|nob\s*sucker|nob\s*swallower|nob\s*tease|nob\s*teaser|nob\s*teasing|nob\s*tickler|nock\s*up|nockd\s*up|nocked\s*up|nockstress|nut\s*sack|nympho|nymphomania|nymphomaniac|nymphomaniacs|one\s*eyed\s*cyclops|one\s*eyed\s*piccallo|one\s*eyed\s*snake|one\s*eyed\s*trouser|one\s*eyed\s*trouser\s*snake|one\s*eyed\s*zipper\s*fish|p0rn|paly\s*boy|pansy\s*arse|pansy\s*ass|pegging|pencil\s*dick|penis\s*breath|penis\s*pump|penis\s*ring|persian\s*kitty|phanny\s*phart|phone\s*sex|phuck|phuck\s*meister|phuck\s*u|phuck\s*you|phucker|phucking|phug|phugger|phuk|phukt|phuq|phuque|phuquer|pictophilia|piddle|piddling|piece\s*of\s*ass|pig\s*face|Tit\s*Wank|play\s*girl|play\s*mate|pocket\s*rocket|poo\s*hole|poo\s*holing|poo\s*shoot|poo\s*shooter|poo\s*shooting|poo\s*shot|poo\s*shute|poo\s*shuter|poo\s*shuting|pooftah|poofter|poon|poonany|poontan|poontang|poop\s*chute|poop\s*shoot|poop\s*shute|pooper\s*scooper|pootang|poove|poozle|popa\s*cherry|popoo|pork\s*dagger|pork\s*stabber|pork\s*sword|porker|porking|porno|porono|porun|possesh|pouf|pouffe|pozcum|ppusssies|ppusssy|ppussy|ppusy|prats|pratt|prick\s*biter|prick\s*licker|prick\s*sucker|prick\s*tease|prick\s*teaser|prick\s*teasing|prik|prono|pronography|pssy|pulling\s*the\s*plonker|purple\s*cyclops|purple\s*helmet|purple\s*puncher|pussy\s*fart|pussy\s*popping|pussy\s*whipped|pussys|puusie|puusies|puussy|puusy|quaggot|quat|quean|queef|queefor|queer\s*bait|queer\s*bastard|quefe|quief|quiff|quim|quim\s*licker|quim\s*lover|quim\s*stake|qweef|reamer|reamming|recktal|rektim|rektom|rektum|rice\s*queen|rim\s*job|rima\s*donna|rimming|ron\s*jeremy|s\&m|s0n0f\s*a\s*bitch|s0nof\s*a\s*bitch|sambo|schlong|scrud|scuking|seks|seksi|seksie|seksual|seksumi|seksy|sex\s*fiend|sex\s*sword|sex\s*weapon|shag\s*tastic|shaggin\s*wagon|shat|shiit|shit\s*can|shit\s*face|shit\s*faced|shit\s*fit|shit\s*head|shit\s*heads|shit\s*house|shit\s*list|shit\s*load|shit\s*stabber|shit\s*stabbing|shit\s*stain|shite|shits|shitter|shlong|shmale|shmales|shmegma|shmock|shmuch|shmuck|shmuk|shmuke|shmukk|shower\s*cam|sit\s*on\s*my\s*face|skin\s*flute|skoptsy|skrat|slut|sod\s*off|son\s*of\s*a\s*bitch|son\s*uv\s*a\s*bitch|son0f\s*a\s*bitch|sperm\s*burper|spread\s*eagle|spread\s*legs|spread\s*lips|spunk|spunk\s*guzzler|spunked|spunker|spunking|spurm|stain\s*wad|stinkypinky|strapon|strap-on|strap-on|strumpet|suc\s*my\s*bawlz|suc\s*my\s*dic|suc\s*my\s*dik|suc\s*my\s*nuts|suc\s*my\s*sack|suck\s*nut|suck\s*off|suckster|suk|suk\s*my\s*bawlz|suk\s*my\s*nuts|suk\s*my\s*sack|suking|sukit|suks|tally\s*whacker|teen\s*titties|thai\s*beads|the\s*larche|throbbing\s*love|tittie|titties|titty|titty\s*fuck|titty\s*torture|tittys|toches|toiletcam|tongue\s*fuck|tongue\s*job|tribadism|tribadist|tribbing|trouser\s*ferret|trouser\s*snake|trouser\s*trout|turd\s*burgler|twank|twat|twatarooney|twatboy|twater|twatface|twatgrease|twats|twatter|twatz|tween|twink|unfucking\s*believable|up\s*her\s*butt|up\s*skird|up\s*skirt|up\s*skurt|up\s*the\s*butt|vouyer\s*cam|wacking\s*off|wackoff|wank|wank\s*the\s*plank|wank\s*ware|wankaholic|wanked|wanked\s*off|wanker|wanking|wee\s*wee|weeny\s*wank|wet\s*back|wet\s*panties|wet\s*panty|wet\s*pussy|wh0re|whack\s*off|whacking\s*off|wham\s*bam|wham\s*bam\s*thank\s*you\s*maam|white\s*girls\s*black\s*men|white\s*women\s*black\s*men|wristjob|xardcore|yank\s*me|yank\s*me\s*off|yank\s*my\s*noodle|yank\s*off)\b/ig;
			check_q = this.attr('value').replace(/[^a-z0-9\s]+/i,'');
			return check_q.match(bad);
		};
		
		$.fn.character_count = function(max_count) {
			if(!this.attr('value')) return;
			if(this.attr('value').length > max_count) {
				this.attr('value',this.attr('value').substring(0, max_count));
				if(!q_errors.find('p').length || (q_errors.find('p').length == 1 && q_errors.find('p').html().trim() != 'Questions are limited to 250 characters.'))
					q_errors.append("<p>Questions are limited to 250 characters.</p>").show().find('p').show();
			}
		};
		
		$.fn.twitter_character_count = function(max_count) {
			if(!this.attr('value')) return;
			if(this.attr('value').length > max_count) {
				this.attr('value',this.attr('value').substring(0, max_count));
			}
			$('.twitter_character_count').html(140-parseInt(this.val().length));
		};
		
		$.fn.trim = function() {
			return this.replace(/^\s+|\s+$/g,"");
		}
		
		$.fn.tag_suggest = function(ev) {
			ul ='';
			id = 'ul#'+this.attr('id')+'_autosuggest';
			$$ = $(id);
			switch(ev.keyCode) {
				case 40:
					/*
					 * Down keypress
					 */
					if($(id).length) {
						if($$.find('li.highlighted').length) {
							last = $$.find('li.highlighted');
							if(last.next('li').length) {
								$$.find('li').removeAttr('class');
								last.next('li').addClass('highlighted');
							}
						}else{
							$$.find('li').removeAttr('class');
							$$.find('li:first').addClass('highlighted');
						}
					}
					return false;
					break;
				case 38:
					/*
					 * Up keypress
					 */
					if(id.length) {
						if($$.find('li.highlighted').length) {
							last = $$.find('li.highlighted');
							if(last.prev('li').length) {
								$$.find('li').removeAttr('class');
								last.prev('li').addClass('highlighted');
							}
						}else{
							$$.find('li').removeAttr('class');
							$$.find('li:last').addClass('highlighted');
						}				
					}
					return false;
					break;
				case 13:
					/*
					 * Enter keypress
					 */
					if(id.length && $$.find('li.highlighted').length) {
						$$.find('li.highlighted').click();
					}
					return false;
					break;
				case 59:
				case 107:
				case 109:
				case 188:
				case 190:
				case 191:
				case 192:
				case 219:
				case 220:
				case 221:
				case 222:
					html = '';
					break;
				default:
					if(!$(id).length) {
						this.after('<ul id="'+this.attr('id')+'_autosuggest">&nbsp;</ul>');
					}
					ul = $(id);
					txt = this.attr('value');
					html = showSuggestions(txt);
					break;
			}
			if(ul.length && html.length)
				ul.html(html).show();
			else
				ul.html(html).hide();
		}
		
		$.fn.overlay = function(hide) {
			if(hide==true)
				$(this).hide();
			else
				$(this).css({ width:$(document).width(),height:$(document).height() }).show();
			return $(this);
		}
		
		$.fn.modalWindow = function(size,href,post,head,pop_height,className) {
			var modal = $('div#'+size+'_modal');
			var modalWrapper = $('div#'+size+'_modal_wrapper');
			
			var pop_height = pop_height?pop_height:0;
			post['heading'] = '';
			
			var scrollTop = $(window).scrollTop();
			var height = $(window).height();
			if(!pop_height)
				var pop_height = 450;
			var top_addition = (height - pop_height)/2;
			var top_offset = scrollTop + top_addition;
								
			if(modal.length) {
				if(modalWrapper.length == 0) {
					$('div#overlay').overlay(false);
										
					modal.html('<div style="position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;"><img src="/res/common/ajax-loader.gif" width="54" height="55" /></div>')
						.load(href,post).wrap('<div id="'+size+'_modal_wrapper"><div class="body"></div></div>')
						.fadeIn(500)
						.after('<a class="close" href="#" onclick="return false;"></a>')
						.parents()
						.find('div#'+size+'_modal_wrapper')
							.css({top:top_offset,marginTop:'0'});
								
				}else if(modalWrapper.is(':hidden')) {
					$('div#overlay').overlay(false);
					modal.css({ height: 'auto' });
					
					modal.html('<div style="position:absolute;top:50%;left:50%;margin:-25px 0 0 -25px;"><img src="/res/common/ajax-loader.gif" width="54" height="55" /></div>')
						.load(href,post).fadeIn(500)
						.parents()
						.find('div#'+size+'_modal_wrapper')
							.css({top:top_offset,marginTop:'0'}).fadeIn(500);
					
				}
			}
			return $(this);
		}
		
		$.fn.loading = function() {
			$(this).append('<div class="loading"><img src="/css/common/ajax-loader.gif" />&nbsp;loading&hellip;</div>')
			return $(this);
		}
	})(jQuery);
	
	function showSuggestions(txt) {
		if(!hub_tags.length) return '';
		if(!txt) return '';
		html = '';

		currentTags = txt.split(',');
		currentTag = trim(currentTags.pop());
		if(!currentTag) return html;
		
		currentLetter = currentTag.charAt(currentTag.length-1);
		currentLength = currentTag.length;
		matches = new Array();
		
		/**
		 * Search hub_tags for text
		 */
		myregexp = new RegExp('^'+currentTag,'i');
		for (i = 0; i < hub_tags.length; i++) {
			_tag = hub_tags[i];
			mymatch = myregexp.test(_tag);
			if(mymatch) {
				match = true;
				for (key in currentTags) {
					if (currentTags[key] == _tag)
						match = false;
				}
				if(match)
					matches.push(_tag);
			}
		}

		/**
		 * Display matches
		 */
		end = (matches.length > 4)?5:matches.length;
		for (i = 0; i < end; i++) {
			liclass = i==end-1?' class="last"':'';
			html += '<li'+liclass+'><strong class="right">'+hub_tags_cnt[matches[i]]+'</strong>' + matches[i] + '</li>';
		}
		return html;
	}
	
	/*
	 * Registration functions
	 */
	function email_check(email_addy) {
		var at="@"
		var dot="."
		var lat=email_addy.indexOf(at)
		var lstr=email_addy.length
		var ldot=email_addy.indexOf(dot)
		
		if (email_addy.indexOf(at)==-1){
			return false
		}
		if (email_addy.indexOf(at)==-1 || email_addy.indexOf(at)==0 || email_addy.indexOf(at)==lstr){
			return false
		}
		if (email_addy.indexOf(dot)==-1 || email_addy.indexOf(dot)==0 || email_addy.indexOf(dot)==lstr){
			return false
		}
		if (email_addy.indexOf(at,(lat+1))!=-1){
			return false
		}
		if (email_addy.substring(lat-1,lat)==dot || email_addy.substring(lat+1,lat+2)==dot){
			return false
		}
		
		if (email_addy.indexOf(dot,(lat+2))==-1){
			return false
		}
		if (email_addy.indexOf(" ")!=-1){
			return false
		}
		return true					
	}
	
	var jump=function(e) {
		//prevent the "normal" behaviour which would be a "hard" jump
		e.preventDefault();
		//Get the target
		var target = $(this).attr("href");
		//perform animated scrolling
		$('html,body').animate({
			//get top-position of target-element and set it as scroll target
			scrollTop: $(target).offset().top
			//scrolldelay: 2 seconds
		},1500,function() {
			//attach the hash (#jumptarget) to the pageurl
			location.hash = target;
		});
	}
	
	$(function() {
		$('.jump').live("click",jump);
	});

	function confirmation (message, href) {
		var agree=confirm(message);
		if (agree && href) {
			document.location.href = href+'?confirmed=true';
		}else if(agree) {
			return true;
		}
		return false;
	}
	
	var ajax_lookup = new Array();
	ajax_lookup["/settings/"] = '/me/dashboard.php';
	ajax_lookup["/moderation/"] = '/modules/moderation.php';
	ajax_lookup["/settings/member_management/"] = '/me/member_management.php';
	ajax_lookup["/invite/"] = '/modules/invite.php';
	ajax_lookup["/settings/member_mailshots/"] = '/me/member_mailshots.php';
	ajax_lookup["/settings/user_details/"] = '/me/edit_user_details.php';
	ajax_lookup["/change_email/"] = '/me/security.php?type=change_email';
	ajax_lookup["/change_password/"] = '/me/security.php?type=change_password';
	ajax_lookup["/settings/"] = '/me/dashboard.php';
	ajax_lookup["/settings/profile_picture/"] = '/me/edit_avatar.php';
	ajax_lookup["/settings/privacy_settings/"] = '/me/privacy_settings.php';
	ajax_lookup["/settings/notification_settings/"] = '/me/notification_settings.php';
	ajax_lookup["/settings/connect/"] = '/me/connect.php';
	ajax_lookup["/settings/unsubscribe/"] = '/me/unsubscribe.php';
	ajax_lookup["/settings/hub_details/"] = '/me/customize.php';
	ajax_lookup["/settings/hub_design/"] = '/me/customize_design.php';
	ajax_lookup["/settings/favicon/"] = '/me/favicon.php';
	ajax_lookup["/settings/moderation_settings/"] = '/me/moderation_settings.php';
	ajax_lookup["/settings/analytics/"] = '/me/analytics.php';
	ajax_lookup["/settings/domain_forwarding/"] = '/me/domain_forwarding.php';
	ajax_lookup["/settings/page_side_widget/"] = '/me/page_side_widget.php';
	ajax_lookup["/settings/questions_widget_builder/"] = '/me/questions_widget_builder.php';
	ajax_lookup["/settings/custom_ads/"] = '/me/custom_ads.php';
	ajax_lookup["/settings/promotional_links/"] = '/me/promotional_links.php';
	ajax_lookup["/settings/api/"] = '/me/api.php';
	ajax_lookup["/settings/remove_hub/"] = '/me/remove_hub.php';
	
	var ajax_ids = new Array();
	ajax_ids["/moderation/"] = 'moderation';
	ajax_ids["/settings/member_management/"] = 'member_management';
	ajax_ids["/change_email/"] = 'user_details';
	ajax_ids["/change_password/"] = 'user_details';
	
	$(function() {
		$('.ajax_load').live("click",function() {
			split = $(this).attr('href').split(/\?/);
			href_clean = split[0];
			href = ajax_lookup[href_clean];
			if(href.match(/\?/)) {
				split_tmp = href.split(/\?/);
				href=split_tmp[0];
				if(split[1] && split[1].length)
					split[1]+='&'+split_tmp[1];
				else
					split[1]=split_tmp[1];
			}
			
			id = $(this).attr('id');
			if(!id) {
				id = ajax_ids[href_clean];
			}
			href += '?_inline=true&ajax=true';
			if(split[1]) {
				href += '&'+split[1];
			}
			$$ = $('.sidebar .active');
			$$.removeClass('active');
			$$.addClass('inactive');
			$('#'+id).parent().addClass('active');
			$('#mainContent').loading();
			$.get(href,null,function(data) { 
				$('#mainContent div.loading').remove();
				if(data.length) {
					$('#mainContent').html(data);
					resizeSidebar(sidebar_original_height);
				}
			});
			return false;
		});
		
		$('.ajax_mod').live("click",function() {
			tui = '';
			page = '';
			split = $(this).attr('href').split(/\?/);
			switch(split[1]) {
				case 'type=questions':
					tui = split[0].replace(/\/member\/(.*)\/?/,"$1");					
					id="questions_link";
					module = "/modules/user_contributions.php";
					break;
				case 'type=answers':
					tui = split[0].replace(/\/member\/(.*)\/?/,"$1");
					id="answers_link";
					module = "/modules/user_contributions.php";
					break;
				case 'sort=date':
					page = split[0].replace(/\/(.*)\/?/,"$1");					
					id="sortDate";
					module = "/modules/qa_answers.php";
					break;
				case 'sort=ratings':
					page = split[0].replace(/\/(.*)\/?/,"$1");
					id="sortRatings";
					module = "/modules/qa_answers.php";
					break;
			}
			href = module;
			href += '?ajax=true';
			if(split[1]) {
				href += '&'+split[1];
			}
			if(tui.length) {
				href += '&tui='+tui;
			}
			if(page.length) {
				href += '&page='+page;				
			}
			$$ = $('#latestList, #activityList, #questions_link, #answers_link, #sortDate, #sortRatings');
			$$.removeClass('active');
			$$.addClass('inactive');
			$('#'+id).addClass('active');
			$('#ajaxify').loading();
			$.get(href,null,function(data) { 
				$('#ajaxify div.loading').remove();
				if(data.length) {
					$('#ajaxify').html(data);
					resizeSidebar(sidebar_original_height);
				}
			});
			return false;
		});
		
		/*
		$('.switch_mod').live("click",function() {
			split = $(this).attr('href').split(/\?/);
			
			switch(split[1]) {
				case 'type=latest':				
					id="latestList";
					$('h2.tab_heading a.rss').attr('href','/rss/questions/');
					$('ul#activity, div#popularQuestions').hide();
					$('div#recentQuestions, ').show();
					text = "Latest Questions";
					break;
				case 'type=activity':
					id="activityList";
					$('h2.tab_heading a.rss').attr('href','/rss/activity/');
					$('div#recentQuestions, div#popularQuestions').hide();
					$('ul#activity').show();
					text = "Latest Activity";
					break;
				case 'type=popular':
					id="popularList";
					$('h2.tab_heading a.rss').attr('href','/rss/popular/');
					$('div#recentQuestions, ul#activity').hide();
					$('div#popularQuestions').show();
					text = "Popular Questions";
					break;
			}
			$$ = $('#latestList, #activityList, #popularList');
			$$.removeClass('active');
			$$.addClass('inactive');
			$('#'+id).addClass('active');
			$('h2.tab_heading span').html(text);
			resizeSidebar(sidebar_original_height);
			return false;
		});
		*/
		$('.switch_mod').live("click",function() {
			split = $(this).attr('href').replace(/\//g,'');
			$.post('/tab_store.php',{ script:'/index.php', primary_tab:split});
			
			switch(split) {
				case 'latest':				
					id="latestList";
					$('h2.tab_heading a.rss').attr('href','/rss/questions/');
					$('ul#activity, div#popularQuestions').hide();
					$('div#recentQuestions, ').show();
					text = "Latest Questions";
					break;
				case 'activity':
					id="activityList";
					$('h2.tab_heading a.rss').attr('href','/rss/activity/');
					$('div#recentQuestions, div#popularQuestions').hide();
					$('ul#activity').show();
					text = "Latest Activity";
					break;
				case 'popular':
					id="popularList";
					$('h2.tab_heading a.rss').attr('href','/rss/popular/');
					$('div#recentQuestions, ul#activity').hide();
					$('div#popularQuestions').show();
					text = "Popular Questions";
					break;
			}
			$$ = $('#latestList, #activityList, #popularList');
			$$.removeClass('active');
			$$.addClass('inactive');
			$('#'+id).addClass('active');
			$('h2.tab_heading span').html(text);
			resizeSidebar(sidebar_original_height);
			return false;
		});

		$('form.ajax_form').live("submit",function() {
			href_clean = $(this).attr('action');
			href = ajax_lookup[href_clean];
			id = ajax_ids[href_clean];
			href += '?_inline=true&ajax=true';
			inputs = $(this).find('input, select, button');
			inputs.each(function() {
				href+='&'+$(this).attr('name')+'='+$(this).attr('value');
			});			
			$$ = $('.sidebar .active');
			$$.removeClass('active');
			$$.addClass('inactive');
			$('#'+id).parent().addClass('active');
			$('#mainContent').loading().load(href,null,function() { $('#mainContent div.loading').remove(); });
			resizeSidebar(sidebar_original_height);
			return false;
		});
		$('form#moderation_ajax select').live("change",function() {
			$(this).submit();
		});
	});

	function adsenseObject(numAds,lineBreak,headerRule) {
		if(numAds) this.num_ads=numAds;	
	}
	function resizeSidebar(sidebar_original_height, init) {
		 if(($('#mainContent').height()-113) > sidebar_original_height && $('#mainContent').height() > 405)
			$('#secondaryContent .sidebar').css('height',(($('#mainContent').height()-113))+'px');
		else if(!init)
			$('#secondaryContent .sidebar').css('height',(sidebar_original_height)+'px');
	}
/* PLUGINS *//**
 * @author Alexander Farkas
 * v. 1.21
 */
(function($) {
	if(!document.defaultView || !document.defaultView.getComputedStyle){ // IE6-IE8
		var oldCurCSS = jQuery.curCSS;
		jQuery.curCSS = function(elem, name, force){
			if(name === 'background-position'){
				name = 'backgroundPosition';
			}
			if(name !== 'backgroundPosition' || !elem.currentStyle || elem.currentStyle[ name ]){
				return oldCurCSS.apply(this, arguments);
			}
			var style = elem.style;
			if ( !force && style && style[ name ] ){
				return style[ name ];
			}
			return oldCurCSS(elem, 'backgroundPositionX', force) +' '+ oldCurCSS(elem, 'backgroundPositionY', force);
		};
	}
	
	var oldAnim = $.fn.animate;
	$.fn.animate = function(prop){
		if('background-position' in prop){
			prop.backgroundPosition = prop['background-position'];
			delete prop['background-position'];
		}
		if('backgroundPosition' in prop){
			prop.backgroundPosition = '('+ prop.backgroundPosition;
		}
		return oldAnim.apply(this, arguments);
	};
	
	function toArray(strg){
		strg = strg.replace(/left|top/g,'0px');
		strg = strg.replace(/right|bottom/g,'100%');
		strg = strg.replace(/center/g,'50%');
		strg = strg.replace(/([0-9\.]+)(\s|\)|$)/g,"$1px$2");
		var res = strg.match(/(-?[0-9\.]+)(px|\%|em|pt)\s(-?[0-9\.]+)(px|\%|em|pt)/);
		return [parseFloat(res[1],10),res[2],parseFloat(res[3],10),res[4]];
	}
	
	$.fx.step. backgroundPosition = function(fx) {
		if (!fx.bgPosReady) {
			var start = $.curCSS(fx.elem,'backgroundPosition');
			
			if(!start){//FF2 no inline-style fallback
				start = '0px 0px';
			}
			
			start = toArray(start);
			
			fx.start = [start[0],start[2]];
			var end = toArray(fx.options.curAnim.backgroundPosition);
			fx.end = [end[0],end[2]];
			
			fx.unit = [end[1],end[3]];
			fx.bgPosReady = true;
		}
		//return;
		var nowPosX = [];
		nowPosX[0] = ((fx.end[0] - fx.start[0]) * fx.pos) + fx.start[0] + fx.unit[0];
		nowPosX[1] = ((fx.end[1] - fx.start[1]) * fx.pos) + fx.start[1] + fx.unit[1];           
		fx.elem.style.backgroundPosition = nowPosX[0]+' '+nowPosX[1];

	};
})(jQuery);
