function checkRequiredFields(formName) {
	var returnValue = true;

	var countForms = document.forms.length;
	for (var n = 0; n < countForms; n++) {
		if (document.forms[n].name == formName) {
			var countElements = document.forms[n].elements.length;
			for (var m = 0; m < countElements; m++) {
				if (document.forms[n].elements[m].className == 'requiredField') { //  detects a file inputtype
					document.forms[n].elements[m].onblur();
					returnValue =  false;
				}
			}
		}
	}
	return returnValue;
}

function callBackCheckRequiredFields(formData, jqForm, options) {
	return checkRequiredFields(jqForm[0].name);
}

function openActionUrl(url, returnDiv, dontRefreshContent) {
	var ajax = new Ajax();
	var content = ajax.getContent(url);

	if (!dontRefreshContent) {
		ajax.refreshAjaxContent(window.location.href + '&ajax=1');
	}

	if (returnDiv) {
		document.getElementById(returnDiv).innerHTML = content;
	}
//	displayReturnContent(content);
}

var timer;
function openURLInDivWithTimer(url) {
	if(timer) {
   		clearTimeout(timer);
   	}
   	timer = setTimeout('openURLInDiv(\''+ url +'\');', 500);
}

function openURLInDiv(url) {
	var ajax = new Ajax();
	var content = ajax.getContent(url);
	if (content != '') {
		document.getElementById('returnContent').innerHTML = content;
	}
}

/*
function displayReturnContent(content) {
	//content += ' <img src="images/icons/16x16/delete.png" onclick="document.getElementById(\'returnContent\').innerHTML = \'\';" style="cursor: pointer;">';
	document.getElementById('returnContent').innerHTML = content;
	document.getElementById('returnContent').style.color = colorArray[0];
	clearInterval(fadeOutInterval);
	setTimeout('textFadeOut();', 2000);
} // */

function validate(field, url, outputDiv, httproot) {
	var ajax = new Ajax();

	switch(field.type) {
		case 'text':
			if (url.search('^[a-zA-Z0-9]+$') != -1) {
				if (httproot != null) {
					url = httproot + 'index.php?action=validateWithAjax&type=' + url + '&value=' + field.value + '&ajax=1';
				} else {
					url = 'index.php?action=validateWithAjax&type=' + url + '&value=' + field.value + '&ajax=1';
				}
			}
		
			var content = ajax.getContent(url);
		  	content = content.replace(/^\s+/,'');
		  	content = content.replace(/\s+$/,'');
		break;
		case 'checkbox':
			var box = (field.id).split('_');
			var boxID = box[0];
			var test = document.getElementById(boxID).getElementsByTagName('input');

			var counter = 0;
			for (var n = 0; n < test.length; n++) {
				if (test[n].checked) {
					counter++;					
				}
			}
		
			if (counter == 0) {
				content = 'Check minimaal één';
			} else {
				content = '';				
			}
		break;
		case 'radiobox':
		
		break;
	}
	
	if (content != '') {
		field.className = 'requiredField';
		if (outputDiv) {
			document.getElementById(outputDiv).className = 'outputDiv';
			document.getElementById(outputDiv).style.visibility = 'visible';
			document.getElementById(outputDiv).style.display = 'block';
			document.getElementById(outputDiv).innerHTML = content;
		}
	} else {
		field.className = '';
		if (outputDiv) {
			document.getElementById(outputDiv).className = '';
			document.getElementById(outputDiv).style.visibility = 'hidden';
			document.getElementById(outputDiv).style.display = 'none';
			document.getElementById(outputDiv).innerHTML = '';
		}
	}
}

var	colorArray = Array('#000000', '#111111', '#222222', '#333333', '#444444', '#555555', '#666666',	'#777777', '#888888', '#999999', '#AAAAAA', '#BBBBBB', '#CCCCCC', '#DDDDDD', '#EEEEEE',	'#FFFFFF');
var i, fadeOutInterval;
function textFadeOut(elementid){
	i = 0;
	fadeOutInterval = setInterval ("changecolor()", 100);
}

function changecolor() {
	var x = document.getElementById('returnContent');
	x.style.color = colorArray[i];
	if (i == 14){
		x.innerHTML = '';
		clearInterval(fadeOutInterval);
	}
	i++;
}

// ######################### CLASS: ajax #########################
function Ajax () {
	this.createXMLReq = function() {
		if (window.XMLHttpRequest) {		// Firefox
			return new XMLHttpRequest();
		} else if (window.ActiveXObject) {		// Internet Explorer
			return new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	this.getContent = function(url) {
		var req_obj = this.createXMLReq();

		req_obj.open('GET', url, false);
		req_obj.send('');

		return req_obj.responseText;
	}

	this.postContent = function(url, data) {
		var req_obj = this.createXMLReq();

		req_obj.open('POST', url, false);
		req_obj.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		req_obj.send(data);

		return req_obj.responseText;
	}

	this.refreshAjaxContent = function(url) {
		document.getElementById('content').innerHTML = this.getContent(url);
	}
}
