// --- CLIENTCHECK ---

function getClient() {
    // convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase()
    var apv=navigator.appVersion.toLowerCase()
    this.major = parseInt(navigator.appVersion)
    this.minor = parseFloat(navigator.appVersion)
    // browserversion
    this.ns  = ((agt.indexOf('mozilla')!=-1) && ((agt.indexOf('spoofer')==-1) && (agt.indexOf('compatible') == -1)))
    this.ns4 = (this.ns && (this.minor >= 4.03) && (this.major < 5))
	this.ns6 = (this.ns && (this.major == 5))
	this.gecko = (this.ns && (this.major >= 5))
    this.ie   = (agt.indexOf("msie") != -1)
    this.ie4  = (this.ie && (this.major == 3))
	this.ie45 = (agt.indexOf('msie 4.5') != -1);
    this.ie5  = (this.ie && (this.major == 4))
    // platform
	this.mac = (apv.indexOf("macintosh")>0);
	this.win = (apv.indexOf("win")>0);	
    // compatible browsers
	this.ie4comp = ((this.ie4 && !this.mac) || this.ie45 || this.ie5)
	this.ns4comp = (this.ns4);
	this.ns6comp = (this.gecko || this.ns6);
	this.comp = (this.ie4comp || this.ns4comp || this.ns6comp);
	return (this)
}

var is = new getClient();

// --- IMAGE SWAP ---

function swapImage(imgSrc, imgName, elt) { 
	if ((is.ns4comp) || (is.ie4comp)) {
		if (swapImage.arguments.length == 3) {
			eval("elt.document." + imgName + ".src = '" + imgSrc + "'");
		} else {
			eval("document." + imgName + ".src = '" + imgSrc + "'");
		}
	} else if (is.ns6comp) {
		var img = document.getElementsByName(imgName);
		img[0].src = imgSrc;
	}
}


// --- IMAGE PRELOAD ---

function preloadImages() { 
	if (document.images) {
		var imgStr = preloadImages.arguments;
		if (!document.preloadArray) document.preloadArray = new Array();
		var n = document.preloadArray.length;
		for (var i=0; i<preloadImages.arguments.length; i++) {
			document.preloadArray[n] = new Image;
			document.preloadArray[n].src = imgStr[i];
			n++;
		} 
	}
}

// --- EMAIL CHECK ---

function checkForm(url){
	var formCheck = "passed";
	var FrmLen = document.mailing.elements.length;
	for (var i = 0; i < FrmLen; i++){
		if (document.mailing.elements[i].value==""){
			formCheck = "failed";	
		}
	}

	if (formCheck=="failed"){
		alert('vul een emailadres in, aub...');
	}else{
		if (checkEmail(document.mailing.elements['emailadres'].value)){
			eval(location.replace(url+(document.mailing.elements['emailadres'].value)));
		}
	}
}

function checkEmail(emailStr) {
	var emailPat=/^(.+)@(.+)$/;
	var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
	var validChars="\[^\\s" + specialChars + "\]";
	var quotedUser="(\"[^\"]*\")";
	var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
	var atom=validChars + '+';
	var word="(" + atom + "|" + quotedUser + ")";
	var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
	var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
	var matchArray=emailStr.match(emailPat);

	if (matchArray==null) {
		alert("dit is geen juist emailadres...");
		return false;
	}

	var user=matchArray[1]
	var domain=matchArray[2]

	// See if "user" is valid 
	if (user.match(userPat)==null) {
		alert("no user filled out!");
	    return false;
	}

	var IPArray=domain.match(ipDomainPat)
	if (IPArray!=null) {
	    // this is an IP address
		  for (var i=1;i<=4;i++) {
		    if (IPArray[i]>255) {
			alert("IP adres klopt niet!");
			return false;
		    }
	    }
	    return true;
	}

	// Domain is symbolic name
	var domainArray=domain.match(domainPat);
	if (domainArray==null) {
		alert("geen domeinnaam ingevuld!");
	    return false;
	}

	var atomPat=new RegExp(atom,"g");
	var domArr=domain.match(atomPat);
	var len=domArr.length;
	if (domArr[domArr.length-1].length<2 || 
	    domArr[domArr.length-1].length>6) {
	   // the address must end in a two letter or six (new TLD's!) letter word.
	   alert("domeinnaam bestaat niet!");   
	   return false;
	}

	// Make sure there's a host name preceding the domain.
	if (len<2) {
	   alert("hostnaam klopt niet!");
	   return false;
	}

	// If we've gotten this far, everything's valid!
	return true;
}

function popWindow(address, width, height) {
if (screen) {
   y=(screen.availHeight - height)/2;
   x=(screen.availWidth - width)/2;
 }

 if (screen.availWidth > 1800) {
   x=((screen.availWidth/2) - width)/2;
 }

  var popup = window.open(address, 'popup' , 'toolbar=0,location=0,directories=0,status=1,menubar=0,resizable=1,scrollbars=1,width='+ width + ',height=' + height +',screenX='+x+',screenY='+y+',top='+y+',left='+x);
}