/* Namespace */
if (!dk) {
  var dk = {} ;
  dk.danskInternetSelskab = {} ;
} else if (!dk.danskInternetSelskab) {
  dk.danskInternetSelskab = {} ;
}
var dis = dk.danskInternetSelskab;	

dis.Toggler = Class.create();
dis.Toggler.prototype = {
	// links: cssRule (select a-elements)
	// effect: ['appear' (default) | 'slide' | 'blind']
	//	prefixShow: text inserted before link on show
	//	prefixHide: text inserted before link on hide
	initialize: function(links, effect, prefixShow, prefixHide) {
		var toggler = this;
		this.links = (links || 'a');
		this.effect = (effect || 'appear');
		this.prefixShow = (prefixShow || '');
		this.prefixHide = (prefixHide || '');
	},
	start: function() {
		var aLinks = $$(this.links);
		for(i = 0; i < aLinks.length; i++) {
			var sHash = aLinks[i].hash.replace("#", "");
			var oTarget = $(sHash);
			if (oTarget) {
				aLinks[i].title = aLinks[i].innerHTML;
				aLinks[i].update( (this.prefixShow + aLinks[i].innerHTML).capitalize() );
				aLinks[i].addClassName('hidden');
				Event.observe(aLinks[i], 'click', this.click.bindAsEventListener(this), false);
				Element.hide(oTarget);
			}
		}
	},
	startMultiple: function() {
		var aLinks = $$(this.links);
		for(i = 0; i < aLinks.length; i++) {
			var sHashes = aLinks[i].hash.split("|");
			for (j = 0; sHashes[j]; j++) {
				var sHash = sHashes[j].replace("#", "");
				var oTarget = $(sHash);
				if (oTarget) {
					if (j == 0)
					{
						aLinks[i].title = aLinks[i].innerHTML;
						aLinks[i].update( (this.prefixShow + aLinks[i].innerHTML).capitalize() );
						aLinks[i].addClassName('hidden');
						Event.observe(aLinks[i], 'click', this.click.bindAsEventListener(this), false);
					}
					if (oTarget.title != "no_effect")
						Element.hide(oTarget);
				}
			}
		}
	},
	click: function(event) {
		var element = Event.element(event);
		if (element.hash.indexOf("|") > -1)
		{
			this.clickMultiple(element);
			Event.stop(event);
			return;
		}
		var sHash = element.hash.replace("#", "");
		var oTarget = $(sHash);
		if (oTarget) {
			Effect.toggle(oTarget,this.effect);
			if (oTarget.visible()) {
				element.update( (this.prefixShow + element.title).capitalize() );
				element.addClassName('hidden');
				element.removeClassName('visible');
			} else {
				element.update( (this.prefixHide + element.title).capitalize() );
				element.addClassName('visible');
				element.removeClassName('hidden');
			}
		}
		Event.stop(event);
	},
	clickMultiple: function(element)
	{
		var sHashes = element.hash.split("|");
		for (j = 0; sHashes[j]; j++) {
			var sHash = sHashes[j].replace("#", "");
			var oTarget = $(sHash);
			if (oTarget) {
				if (oTarget.title == "no_effect")
					Effect.toggle(oTarget, "blind");
				else
					Effect.toggle(oTarget, this.effect);
				if (j == 0)
				{
					if (oTarget.visible()) {
						element.update( (this.prefixShow + element.title).capitalize() );
						element.addClassName('hidden');
						element.removeClassName('visible');
					} else {
						element.update( (this.prefixHide + element.title).capitalize() );
						element.addClassName('visible');
						element.removeClassName('hidden');
					}
				}
			}
		}
	},
	log: function(message)
	{
		logE = $("log");
		if (! logE)
			return;
		logE.innerHTML += message + "\n";
	}
};

dis.util = {};
dis.util.activateStylesheet = function(sheetref) {
	var ss;
	if(document.getElementsByTagName) {
		ss=document.getElementsByTagName('link');
	} else if (document.styleSheets) {
		ss = document.styleSheets;
	}
	for(var i=0;ss[i];i++ ) {
		if(ss[i].href.indexOf(sheetref) != -1) {
			ss[i].disabled = true;
			ss[i].disabled = false;			
		}
	}
};