function lib_bwcheck() {
	this.ver=navigator.appVersion;
	this.agent=navigator.userAgent;
	this.dom=document.getElementById?1:0;
	this.opera5 = this.agent.indexOf("Opera 5")>-1;
	this.ie5=(this.ver.indexOf("MSIE 5")>-1 && this.dom && !this.opera5)?1:0; 
	this.ie6=(this.ver.indexOf("MSIE 6")>-1 && this.dom && !this.opera5)?1:0;
	this.ie4=(document.all && !this.dom && !this.opera5)?1:0;
	this.ie=this.ie4||this.ie5||this.ie6
	this.mac=this.agent.indexOf("Mac")>-1
	this.ns6=(this.dom && parseInt(this.ver) >= 5) ? 1:0;
	if (!this.ns6) this.ns6 = (this.dom && this.agent.indexOf("Firebird")>-1);
	if (!this.ns6) this.ns6 = (this.dom && this.agent.indexOf("Firefox")>-1);
	this.ns4=(document.layers && !this.dom)?1:0;
	this.bw=(this.ie6 || this.ie5 || this.ie4 || this.ns4 || this.ns6 || this.opera5)
	return this;
}
var bw = new lib_bwcheck()

function fixFocus() {
	var bw_i = new lib_bwcheck()
	if (bw_i.ie4 || bw_i.ns4) {
	} else {
		var v=Array('button','a', 'input');var a,m,i,j,b;for(j=0;j<v.length;j++){if(document.getElementsByTagName)a=document.getElementsByTagName(v[j]);
		for(i=0;i<a.length;i++){m=a[i];b=false;if(v[j]=='input'){if(m.type=='button' || m.type=='submit' || m.type=='image'|| m.type=='radio'){b=true;}}else{b=true;}if(b){m.onfocus=m.blur;}}}
	}
}

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 addEvent(obj, evType, fn){
    if (obj.addEventListener){
        obj.addEventListener(evType, fn, false);
        return true;
    } else if (obj.attachEvent){
        var r = obj.attachEvent("on"+evType, fn);
        return r;
    } else {
        return false;
    }
}

addEvent(window, 'load', fixFocus);
addEvent(window, 'load', externalLinks);

function isURL(url) {
	re = /^((http[s]?|ftp):\/\/)?([^\/:]+)(:\d{1,5})?(\/[^\s\"\'`]*)?$/i;
	found = re.exec(url);
	if (!found) 
		return false;

	return chk_dom(found[3]);
}

function ltrim(str) {

	var whitespace = new String(" \t\n\r");
	var s = new String(str);

	if (whitespace.indexOf(s.charAt(0)) != -1) {
		var j = 0, i = s.length;

		while (j < i && whitespace.indexOf(s.charAt(j)) != -1) {
			j++;
		}

		s = s.substring(j, i);
	}

	return s;
}

function rtrim(str) {

	var whitespace = new String(" \t\n\r");
	var s = new String(str);

	if (whitespace.indexOf(s.charAt(s.length - 1)) != -1) {
		var i = s.length - 1;

		while (i >= 0 && whitespace.indexOf(s.charAt(i)) != -1) {
			i--;
		}

		s = s.substring(0, i + 1);
	}

	return s;
}

function trim(str) {
	return ltrim(rtrim(str));
}

var ctx = getContextPath();
function getContextPath() {
	return "";
	var selfUrl = document.location.href;
	var e = 0;
	var s = selfUrl.indexOf("//");
	if (s > -1) {
		s += 2;
		s = selfUrl.indexOf("/", s + 1);
		if (s > -1)
			e = selfUrl.indexOf("/", s + 1 );
	}
	if (e > s)
		return selfUrl.substring(s, s + (e - s));

	return 0;
}

var urlCode = new Array("__", " ", "!", "?", ".", ",", ":", ";", "\"", "'", "-", "+", "&", ".", "/", "\\", "(", ")", "*", "=", "^", "%", "$", "#", "@", "`", "~");
function urlRewrite(str) {
	var i;
	if (str && str.length > 0) {
		for (i = urlCode.length; --i >= 0;) {
			if (str.indexOf(urlCode[i]) > -1) {
				str = replace(str, urlCode[i], "_");
			}
		}
		while (str.length > 0 && str.substring(str.length - 1) == "_") {
			str = str.substring(0, str.length - 1);
		}
	}
	return str;
}

function replace (instr, inchar, outchar) {
  return partitionString (inchar, outchar, instr, 0, instr.length - 1);
}

function partitionString (inchar, outchar, instr, left, right) {
  if (left == right) {
    var ch = instr.charAt(left);
    return (ch == inchar) ? outchar : ch;
  }
  var mid = (left+right) >> 1;
  return partitionString (inchar,outchar,instr,left,mid) +
         partitionString (inchar,outchar,instr,mid+1,right); 
}

function frameMe() {
	var frameset = ctx + "/"; //name of the frameset page
	var frame = "frameMain"; //name of the frame to load document into
	var page = new String(self.document.location);
	if (page.indexOf("error.jsp") == -1) {
		var pos = page.lastIndexOf(ctx + "/") + 1;
		var file = page.substr(pos);
		if (window.name != frame){
			var s = frameset + "?" + file + "&" + frame;
			top.location.replace(s);
		}
	}
	return;
}
//frameMe();
/**
 * Sets the selected index of a <SELECT> item.<b> 
 *
 * @param elem the <SELECT> element object.
 * @param idx the index of the object.
 */
function setSelectedIndex(elem, idx) {
	var i;
	for (i = 0; i < elem.options.length; i++) {
		if (i == idx) {
			elem.selectedIndex = i;
			break;
		}
	}
}

/*
 * Validate form
 */

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_validateForm() { //v4.0
  var i,p,q,nm,test,num,min,max,errors='',args=MM_validateForm.arguments;
  for (i=0; i<(args.length-2); i+=3) { test=args[i+2]; val=MM_findObj(args[i]);
    if (val) { nm=val.name; if ((val=val.value)!="") {
      if (test.indexOf('isEmail')!=-1) { p=val.indexOf('@');
        if (p<1 || p==(val.length-1)) errors+='- '+nm+' must contain an e-mail address.\n';
      } else if (test!='R') { num = parseFloat(val);
        if (isNaN(val)) errors+='- '+nm+' must contain a number.\n';
        if (test.indexOf('inRange') != -1) { p=test.indexOf(':');
          min=test.substring(8,p); max=test.substring(p+1);
          if (num<min || max<num) errors+='- '+nm+' must contain a number between '+min+' and '+max+'.\n';
    } } } else if (test.charAt(0) == 'R') errors += '- '+nm+' is verplicht.\n'; }
  } if (errors) alert('De volgende verplichte velden ontbreken:\n'+errors);
  document.MM_returnValue = (errors == '');
}
