function showHide( element, element2 )
{
	if( document.getElementById(element).style.display == "none" ) {
		document.getElementById(element).style.display = "block";
		document.getElementById(element2).style.display = "none";
	} else {
		document.getElementById(element).style.display = "none";
		document.getElementById(element2).style.display = "block";
	}
}

function CheckAll()
{
	count = document.frm.elements.length;
	for (i=1; i < (count-1); i++)
	{
		if( document.frm.elements[i].checked == 0 )
		{
			var blaat = true;
		}
	}
	if( blaat == true )
	{
		for (i=0; i < count; i++)
		{
			document.frm.elements[i].checked = 1;
		}
	} else {
		for (i=0; i < count; i++)
		{
			document.frm.elements[i].checked = 0;
		}
	}
}

function storeCursor()
{
	this.cursorPos = document.selection.createRange().duplicate();
}
function initSmilies(target)
{
}

var aSmiliesInited = {};
function initTheSmilies(target)
{
	target = $(target);
	if (target)
	{
		target.focus();
		if (target.createTextRange)
		{
			target.onkeyup = storeCursor;
			target.onclick = storeCursor;
			target.onselect = storeCursor;
			target.onselect();
		}
	}
	
	aSmiliesInited[target] = true;
}
function smiley(text, target)
{
	if (!aSmiliesInited[target])
	{
		initTheSmilies(target);
	}
	
	text = ' ' + text + ' ';
	target = $(target);
	
	if (target)
	{
		if (target.cursorPos)
		{
			var cursorPos = target.cursorPos;
			cursorPos.text = text;
		}
		else if (target.selectionStart != undefined)
		{
			// remember scrollposition
			var scrollTop = target.scrollTop;

			var sStart = target.selectionStart;
			var sEnd = target.selectionEnd;
			target.value = target.value.substr(0, sStart) + text + target.value.substr(sEnd);
			var nStart = sStart == sEnd ? sStart + text.length : sStart;
			var nEnd = sStart + text.length;
			target.setSelectionRange(nStart, nEnd);

			// reset scrollposition
			target.scrollTop = scrollTop;
		}
		else
		{
			target.value += text;
		}

		target.focus();
		if (target.cursorPos) target.onselect();
	}
}


/**
 * Get the tiny MCe plugin to conver textarea's
 * to WYSIWYG thingy
 */
function getTinyMCE() {
	tinyMCE.init({
		/** Global settings */
		mode : 'textareas',
		theme : 'advanced',
		relative_urls : false,

		/** Plugins */
		plugins : 'table',
		/** gecko_spellcheck : true, */

		/** Language */
		language : 'en',
		remove_linebreaks : false,
		apply_source_formatting : true,
		theme_advanced_buttons1 : 'bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull',
		theme_advanced_buttons2 : 'bullist,numlist,separator,outdent,indent,separator,undo,redo',
		theme_advanced_buttons3 : '',
		theme_advanced_toolbar_location : 'top'
	});
}

/**
 * Zorgt er voor dat de labels niet meer worden
 * weergegeven, maar dat ze verschijnen in de INPUT
 * field en verdwijnen als je klikt en weer verschijnen
 * als je er buiten klikt
 * @param name (String) - De ID van de label
 * @param forF (String) - Waar is hij voor?
 */
function hideLabel(name, forF) {
	
	alert(forF)
	
	// Het veld zelf + data ophalen
	var field = document.getElementById(forF);
	var label = document.getElementById(name);
	var content = field.value;
	var labelTxt = label.innerHTML;

	// Label verstoppen
	label.style.display = 'none';
	showContent(field, labelTxt);

	// Field focus event instellen
	field.onfocus = function() {
		if( field.value == labelTxt ) {
			resetField(field);
		}
	}

	// Field onblur event instellen
	field.onblur = function() {
		if( field.value == labelTxt || field.value == '' ) {
			showContent(field, labelTxt);
		}
	}
}

/**
 * Gooit de content (text) in de value van field.
 * @param field (HTML DOM object) - Het veld
 * @param text (String) - De tekst
 */
function showContent(field, text) {
	field.value = text;
	field.style.color = '#8e8e8e';
}

/**
 * Reset een veld
 * @param field (HTML DOM OBJECT) - Het veld
 */
function resetField(field) {
	field.value = '';
	field.style.color = '#000000';
}

/**
 * Zet een bepaalde style waarde
 * @param id (String) - De ID van het veld
 * @param name (String) - De naam van het veld
 * @param value (String) - De waarde van het veld
 */
function setField(id, value) {
	document.getElementById(id).style.display = value;
}

/**
 * Zorgt er voor dat als er geklikt is op een ster voor
 * het raten van iets het aantal sterren behouden blijft
 * en dat het in het formulier wordt opgeslagen, zodat
 * het in de database gestopt kan worden.
 */
function setRating(rating) {
	// De sterren behouden, current rating zetten
	document.getElementById('current-rating').style.width = ((rating / 10) * 100)+'%';

	// De waarde in het formulier zetten
	document.getElementById('rating').value = rating;
}



function getElementsByClassName(className, tag, elm){
	var testClass = new RegExp("(^|\\\\s)" + className + "(\\\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}
