  /**
   * @desc Beveiligen van een e-mail met javascript
   * @example voorbeeld adres: apollo@2mpact.be
   * @param {String}    user        gebruikersnaam (gedeelte voor @)    (voorbeeld: apollo)
   * @param {String}    domain      domein    (zonder .be etc)          (voorbeeld: 2mpact)
   * @param {String}    tld         bv. bv, com (zonder de .)           (voorbeeld: be)
   * @param {boolean}   use_mailto  true voor de link; false voor tekst
   */
  function em_no_spam(user, domain, tld, use_mailto)
  {
      var result = "";

      result = user + "@" + domain + "." + tld;

      if(use_mailto == true)
      {
          result = "mailto:"+result;
          window.location = result;
      }
      else
      {
          document.write(result);
      }
  }

function valideer_verplicht_element(element) {
	if(element) {
		if(element.length > 0) {
			//alert('multi');
			return valideer_verplicht_any(element);
		}
		else {
			//alert('single');
			return valideer_verplicht(element);
		}
	}
}

function valideer_verplicht(element) {
	if(element) {
	   var tagName = element.tagName.toUpperCase();
	   //alert(tagName);
	   switch(tagName) {
			case 'INPUT':
				var inputType = element.getAttribute('type');
				if(!inputType) inputType = 'text'; 
				switch(inputType.toLowerCase()) {
					case 'checkbox':
						return element.checked; 
						break;
					case 'radio':
						return element.checked; 
						break;
					default:
						return !isEmpty(element.value);
				}
				break;
			case 'SELECT':
				return !isEmpty(element.options[element.selectedIndex].value);
				break;
			case 'TEXTAREA':
				return !isEmpty(element.value);
				break;
			default:
				return valideer_verplicht_any(element);
				break;
		}
	}
	else {
		return false;
	}
}

function valideer_verplicht_any(element) {
	if(element) {
		for(var i=0; i<element.length;i++) {
		   if(valideer_verplicht(element[i])) return true;
		}
		
		return false;
	}
	else {
		return false;
	}
}

function valideer_verplicht_all(element) {
	if(element) {
		for(var i=0; i<element.length;i++) {
			if(!valideer_verplicht(element[i])) return false;
		}
		return true;
	}
	else {
		return false;
	}
}

function getElementValue(element) {
   var value = null;
	if(element && element.tagName) {
		if(element.tagName.toUpperCase() == 'INPUT') {
			var inputType = element.getAttribute('type');
			if(!inputType) inputType = 'text';
		
			switch(inputType.toLowerCase()) {
				case 'checkbox': 
					value = element.checked?element.value:null; 
					break;
				case 'radio':								
					var radioGroup = element.form[element.name]; 							
					for (var i = 0; i< radioGroup.length; i++) {
						if (radioGroup[i].checked) {
						   value = radioGroup[i].value;
						}
					} 								
					break;
				default:
					value = element.value;
			}
		} else if(element.tagName.toUpperCase() == 'SELECT') {
			value = element.options[element.selectedIndex].value;						
		} else if(element.tagName.toUpperCase() == 'TEXTAREA') {
			value = element.value;
		}
	}
	return value;
}

function isEmpty(s) {
	var regexpWhitespace = /^\s+$/;
	return  ((s == null) || (s.length == 0) || regexpWhitespace.test(s));
}

function isEmail(s) {
	var regexpEmail = /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/;
	return isEmpty(s) || regexpEmail.test(s);
}

/**
 * Print debug naar firebug
 * @param  string	msg		bericht dat je wil tonen
 * @param  string   type    (optioneel) type bericht dat je wil tonen (warn, error, info, debug[=default])
 */
function firebug(msg, type)
{
	//test of de firefox extension 'firebug' is geïnstalleerd
	try
	{		
		var apollo = "[apollo] ";	
		switch(type)
		{
			case 'warn': 	console.warn(apollo+msg);		break;
			case 'error':	console.error(apollo+msg);		break;
			case 'info':	console.info(apollo+msg);		break;
			default:		console.debug(apollo+msg);
		}

	}catch(error) { /* do nothing */ }
}

