function show_usergroups(show) {
	if (!document.getElementById('user-groups')) return;
	if (window.usergroups) window.clearTimeout(window.usergroups);
	if (show) {
		document.getElementById('user-groups').style.display='block';
	} else {
		window.usergroups = window.setTimeout('document.getElementById(\'user-groups\').style.display=\'none\';', 500);
	}
}

function v2_scroller(scroll_element, show) {

	this.show = show;
	this.position = 0;
	this.s_parent = $(scroll_element);
	this.moo_scroll = new Fx.Scroll(this.s_parent.getElement('.scroll'), {transition: Fx.Transitions.Quad.easeInOut, wait: false});

	this.getElement = function() {
		return this.s_parent.getElements('.scroll-item-content')[this.position];
	}

	this.getNext = function() {
		this.position++;
		this.update();
	}

	this.getPrev = function() {
		this.position--;
		this.update();
	}

	this.update = function() {
		var max = this.s_parent.getElements('.scroll-item-content').length - this.show;

		if (this.position > max) {
			this.position = 0;
		}
		if (this.position < 0) {
			this.position = max;
		}

		this.moo_scroll.toElement( this.getElement() );
	}

	this.moo_scroll.set(0);
	this.update();

	var obj = this;
	this.s_parent.getElement(".button-next").addEvent("click", function() {obj.getNext();});
	this.s_parent.getElement(".button-prev").addEvent("click", function() {obj.getPrev();});

}

function compareMatches(a,b) {
	return a[0]-b[0];
}

function stringToRegExp(str) {
	//IE matcher ikke internationale tegn med \w
	var re=new RegExp();
	/*@cc_on @*/
	/*@if (@_jscript)
	var intchars=[['æ','Æ'],['ø','Ø'],['å','Å'],['é','É'],['û','Û'],['è','È'],['ñ','Ñ'],['á','Á'],['à','À'],['ç','Ç']];
	var pattern=str;
	var repre=new RegExp();
	for(var i=0; i<intchars.length; i++) {
		repre.compile('['+intchars[i][0]+intchars[i][1]+']','g');
		pattern=pattern.replace(repre,'['+intchars[i][0]+intchars[i][1]+']');
	}
	re.compile(pattern,'i');
	@else @*/
	re.compile('\\b'+str+(str.length<=3?'\\b':''),'i');
	/*@end @*/
	return(re);
}

function hilite (element,words) {
	if(element.nodeType==3) { // Text node
		var offsets=[];
		var nwre=/[^\wæøåéûèñáàçÆØÅÉÛÈÑÁÀÇ.-]/;
		for(var w=0; w<words.length; w++) {
			var matchArray;
			var offset=0;
			re=stringToRegExp(words[w]);
			while(matchArray=re.exec(element.data.substr(offset))) {
				offset+=matchArray.index;
				/*@if (@_jscript)
				if(offset>0&&!element.data.charAt(offset-1).match(nwre)||(offset+words[w].length)<element.data.length&&words[w].length<=3&&!element.data.charAt(offset+words[w].length).match(nwre)) {
					offset+=words[w].length;
					continue;
				}
				@end @*/
				offsets[offsets.length]=[offset,w];
				if(matchArray=nwre.exec(element.data.substr(offset)))
					offset+=matchArray.index;
				else {
					break;
				}
			}
		}
		offsets.sort(compareMatches);

		if(offsets.length) {
			var container=document.createElement('span');
			var prevoffset=0;
			for(var i=0; i<offsets.length; i++) {
				if(offsets[i][0]>prevoffset) {
					container.appendChild(document.createTextNode(element.data.substring(prevoffset,offsets[i][0])));
					prevoffset=offsets[i][0];
				} else if(offsets[i][0]<prevoffset)
					continue;
				var hilitespan=document.createElement('span');
				hilitespan.className='hilite'+offsets[i][1];
				hilitespan.appendChild(document.createTextNode(element.data.substr(offsets[i][0],words[offsets[i][1]].length)));
				container.appendChild(hilitespan);
				prevoffset+=words[offsets[i][1]].length;
			}
			if(element.data.length>prevoffset)
				container.appendChild(document.createTextNode(element.data.substr(prevoffset)));
			element.parentNode.replaceChild(container,element);
		}
	} else if(element.nodeType==1) // Element node
		for(var i=0; i<element.childNodes.length; i++)
			hilite(element.childNodes[i],words);
}

function hiliteTerms(id) {
	if(!document.getElementById)
		return;
	rootelem=document.getElementById(id);

	if(rootelem&&location.search!='') {
		var terms=location.search.substr(1).split('&');
		for(var i=0; i<terms.length; i++) {
			var param=terms[i].split('=',2);
			if(param.length==2&&param[0]=='highlight'&&param[1]!='') {
				var rawwords=param[1].split('+');
				var words=[];
				for(var w=0; w<rawwords.length; w++) {
					var word=unescape(rawwords[w]).replace(/[^\wæøåéûèñáàçÆØÅÉÛÈÑÁÀÇ.-]/,'');
					if(word!='')
						words[words.length]=word;
				}
				if(words.length>0)
					hilite(rootelem,words);
				break;
			}
		}
	}
}

/*
 * FSA_Network_* functions are for toggeling the "Send to Networks" box
 */

function fsa_network_toggle() {
	var fsa_network         = document.getElementById('fsa_network');
	var fsa_network_toggler = document.getElementById('fsa_network_toggler');
	
	if( fsa_network_toggler.style.position != 'absolute' ) {
		var obj = fsa_network_toggler;
		posLeft = obj.offsetLeft
		posTop = obj.offsetTop
		while (obj = obj.offsetParent) {
			posLeft += obj.offsetLeft
			posTop += obj.offsetTop
		}
		
		fsa_network.style.position = 'absolute';
		fsa_network.style.top = (posTop + 20) + 'px';
		fsa_network.style.left = (posLeft + 0) + 'px';
	}
	
	if( fsa_network.style.display == 'block' ) {
		fsa_network.style.display = 'none';
		
		if( window.document.removeEventListener ) window.document.removeEventListener('mousedown', fsa_network_click, false);
		else if( window.document.detachEvent ) window.document.detachEvent('mousedown', fsa_network_click);
	} else {
		fsa_network.style.display = 'block';
		
		if( window.document.addEventListener ) window.document.addEventListener('mousedown', fsa_network_click, false);
		else if( window.document.attachEvent ) window.document.attachEvent('mousedown', fsa_network_click);
	}
	
	return false;
}

function fsa_network_click( e ) {
	var nn;
	var insideB = false;
	var fsa_network = document.getElementById('fsa_network');
						
	if (!e) var e = window.event;
	if (e.target) nn = e.target;
	else if (e.srcElement) nn = e.srcElement;

	while( nn != null ) {
		if( nn == fsa_network ) {
			insideB = true;
		}
		nn = nn.parentNode;
	}
	if( ! insideB ) {
		fsa_network_toggle();
	}
}