// 2007 (c) Fili Wiese
var DHTML = (document.getElementById || document.all || document.layers);
function getObj(name) { // credits to quirksmode.org
  if (document.getElementById) {
  	this.obj = document.getElementById(name);
	this.style = document.getElementById(name).style;
  } else if (document.all) {
	this.obj = document.all[name];
	this.style = document.all[name].style;
  } else if (document.layers) {
   	this.obj = document.layers[name];
   	this.style = document.layers[name];
  }
}

function externalLinks() {
	if (!document.getElementsByTagName) return;
	var anchors = document.getElementsByTagName("a");
	for (var i=0; i<anchors.length; i++) {
	  var anchor = anchors[i];
	  if (anchor.getAttribute("href") &&
	      anchor.getAttribute("rel") == "external")
	    anchor.target = "_blank";
	}
}

function form_upload_validate (form) {
	if (form.upload_kaart.value == "") { alert( "FOUT > Je hebt nog geen WEBKAART plaatje gekozen om te uploaden" ); return false; }
	if (!form.captcha.value.match(/^[a-zA-Z]{4,4}$/)) { alert( "FOUT > Je hebt de CAPTCHA nog niet overgetypt.\nDeze test houdt SPAM tegen en andere vormen van geautomatiseerd misbruik" ); return false; }
	return true;
}

function form_aanmelden_validate (form) {
	if (form.new_user.value == "") { alert( "FOUT > Je hebt het GEBRUIKERSNAAM veld nog niet ingevuld" ); return false; }
	if (!form.new_user.value.match(/^[a-zA-Z0-9]{4,15}$/)) { alert( "FOUT > een GEBRUIKERSNAAM mag alleen bestaan uit een combinatie van letters (Aa-Zz) en cijfers (0-9), geen spaties of streepjes.\nEen GEBRUIKERSNAAM moet minimaal 4 tekens en mag maximaal 15 tekens lang zijn"); return false; }
	if (form.new_passwd.value == "") { alert( "FOUT > Je hebt het WACHTWOORD veld nog niet ingevuld" ); return false; }
	if (!form.new_passwd.value.match(/^[a-zA-Z0-9-_]{4,15}$/)) { alert( "FOUT > een WACHTWOORD mag alleen bestaan uit een combinatie van letters (Aa-Zz) en cijfers (0-9), geen spaties of streepjes.\nEen WACHTWOORD moet minimaal 4 tekens en mag maximaal 15 tekens lang zijn"); return false; }
	if (form.email.value == "") { alert( "FOUT > Je hebt het E-MAIL veld nog niet ingevuld" ); return false; }
	if (!isEmail(form.email.value)) { alert( "FOUT > het opgegeven E-MAILADRES lijkt niet te kloppen" ); return false; }
	if (!form.captcha.value.match(/^[a-zA-Z]{4,4}$/)) { alert( "FOUT > Je hebt de CAPTCHA nog niet overgetypt.\nDeze test houdt SPAM tegen en andere vormen van geautomatiseerd misbruik" ); return false; }
	return true;
}

function form_abuse_validate (form) {
	if (form.argumentatie.value == "") { alert( "FOUT > Je hebt het ARGUMENTATIE veld nog niet ingevuld" ); return false; }
	return true;
}

function form_kaart_reageren_validate (form) {
	if (form.reactie.value == "") { alert( "FOUT > Je hebt het REAGEER veld nog niet ingevuld" ); return false; }
	return true;
}

function form_kaart_aanpassen_validate (form) {
	return true;
}

function form_kaart_verwijderen_validate (form) {
	return true;
}

function form_kaart_versturen_validate (form) {
	if (!multiEmail(form.to_email.value)) { return false; }
	if (form.message.value == "") { alert( "FOUT > Je hebt het BERICHT veld nog niet ingevuld" ); return false; }
	if (confirm('Webkaart versturen?')) {
		return true;
	} else {
		return false;
	}
}

function form_loginkwijt_validate (form) {
	if (form.email.value == "") { alert( "FOUT > Je hebt het E-MAIL veld nog niet ingevuld" ); return false; }
	if (!isEmail(form.email.value)) { alert( "FOUT > het opgegeven E-MAILADRES lijkt niet te kloppen" ); return false; }
	if (!form.captcha.value.match(/^[a-zA-Z]{4,4}$/)) { alert( "FOUT > Je hebt de CAPTCHA nog niet overgetypt.\nDeze test houdt SPAM tegen en andere vormen van geautomatiseerd misbruik" ); return false; }
	return true;
}

function form_loginlock_validate (form) {
	if (!form.captcha.value.match(/^[a-zA-Z]{4,4}$/)) { alert( "FOUT > Je hebt de CAPTCHA nog niet overgetypt.\nDeze test houdt SPAM tegen en andere vormen van geautomatiseerd misbruik" ); return false; }
	return true;
}

function form_profiel_aanpassen_validate (form) {
	if (form.email.value == "") { alert( "FOUT > Je hebt het E-MAIL veld nog niet ingevuld" ); return false; }
	if (!isEmail(form.email.value)) { alert( "FOUT > het opgegeven E-MAILADRES lijkt niet te kloppen" ); return false; }
	return true;
}

function multiEmail(email_field) {
	var email = email_field.split(',');
	var x = 0;
	for (var i = 0; i < email.length; i++) {
		email[i] = trim(email[i]);
		if (email[i]) {
			if (!isEmail(email[i])) {
				alert( "FOUT > "+email[i]+" is geen geldig e-mailadres" );
				return false;
			}
			x++;
		}
	}
	if (x < 1) {
		alert( "FOUT > er is geen geldig e-mailadres opgegeven" );
		return false;
	}
	return true;
}

function isEmail(str) {
	var supported = 0;
	if (window.RegExp) {
	  var tempStr = "a";
	  var tempReg = new RegExp(tempStr);
	  if (tempReg.test(tempStr)) supported = 1;
	}
	if (!supported) 
	  return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
	var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
	var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$");
	return (!r1.test(str) && r2.test(str));
}

function addEvent( obj, type, fn, tmp ) {
	if( obj.attachEvent ) {
		obj["e"+type+fn] = fn;
		obj[type+fn] = function(){obj["e"+type+fn]( window.event );}
		obj.attachEvent( "on"+type, obj[type+fn] );
	} else {
		obj.addEventListener( type, fn, false );
	}
}

function removeEvent( obj, type, fn ) {
	if( obj.detachEvent ) {
		obj.detachEvent( "on"+type, obj[type+fn] );
		obj[type+fn] = null;
	} else {
		obj.removeEventListener( type, fn, false );
	}
}

function stripspaces(value) {
  value = value.replace(/\s+/g,'');
  return value;
}

function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

// onload events
addEvent(window, 'load', externalLinks, false);
addEvent(window, 'load', fdTextareaController._construct, false);
addEvent(window, 'unload', fdTextareaController._deconstruct, false);