var xVersion='3.15.4',xNN4,xOp7,xOp5or6,xIE4Up,xIE4,xIE5,xUA=navigator.userAgent.toLowerCase();
if (window.opera){
  xOp7=(xUA.indexOf('opera 7')!=-1 || xUA.indexOf('opera/7')!=-1);
  if (!xOp7) xOp5or6=(xUA.indexOf('opera 5')!=-1 || xUA.indexOf('opera/5')!=-1 || xUA.indexOf('opera 6')!=-1 || xUA.indexOf('opera/6')!=-1);
}
else if (document.all && xUA.indexOf('msie')!=-1) {
  xIE4Up=parseInt(navigator.appVersion)>=4;
  xIE4=xUA.indexOf('msie 4')!=-1;
  xIE5=xUA.indexOf('msie 5')!=-1;
}
else if (document.layers) {xNN4=true;}
xMoz=xUA.indexOf('gecko')!=-1;
xMac=xUA.indexOf('mac')!=-1;

var popShown = [];

function leavePop_serializeToString(obj){
 var objType = typeof(obj);
 objType = objType.toString();
 if(objType.substring(0,1)=='o'){
  var len = (typeof(obj.length)!='undefined') ? obj.length : 0;
  var str = 'a:'+len+':{';
  for(var i = 0;i < len;i++){
   str+='i:'+i+';';
   str+=leavePop_serializeToString(obj[i]);
  }
  str+= '}';
  return str;
 }else if(objType.substring(0,1)=='s'){
  return 's:'+obj.length+':"'+escape(obj)+'";';
 }else{
  window.status = 'leavePop_serializeToString: unable to serialize object of type \''+objType+'\'.';
  return false;
 }
}

function leavePop_deserializeFromString(str){
 var objType = str.substring(0,1),obj = null;
 str = str.substring(2);
 if(objType=='a'){
  obj = new Array();
  var len = parseInt(str.substring(0,str.indexOf(':'))),sPos = str.indexOf('{'),ePos = 0,arKey,arD = 0;
  ePos = str.indexOf('}'); 
  //FIXME still doesn't handle nested arrays, 
  //should be able to find last bracket } instead 
  //of first from left
  str = str.substring(sPos + 1,(ePos - sPos) + 2);
  var parts = str.split(';');
  for(var i = 0; i < parts.length - 1;i+=2){ arKey = parseInt(parts[i].substring(2));
   obj[arKey] = leavePop_deserializeFromString(parts[i+1]); }
  return obj;
  
 }else if(objType=='s'){
  obj = new String();
  var len = parseInt(str.substring(0,str.indexOf(':'))); 
  var sPos = str.indexOf('"');
  obj = str.substring(sPos + 1,len + 6);
  return unescape(obj);
 }else{
  window.status = 'leavePop_deserializeFromString: unable to deserialize string \''+str+'\'. Unknown string format.';
  return false;
 }
}

function leavePop_cookieCreate(name,value,days){
 if(days){
  var date = new Date();
  date.setTime(date.getTime()+(days*24*60*60*1000));
  var expires = "; expires="+date.toGMTString();
 }else expires = "";
 var c = name+"=";
 c+=escape(leavePop_serializeToString(value));
 c+=expires+"; path=/";
 document.cookie = c;
}

function leavePop_cookieRead(name) {
 var nameEQ = name + "=";
 var ca = document.cookie.split(';');
 for(var i=0;i < ca.length;i++){
  var c = ca[i];
  while(c.charAt(0)==' ') c = c.substring(1,c.length);
  if(c.indexOf(nameEQ) == 0){
   var value = unescape(c.substring(nameEQ.length,c.length));
   var ret = leavePop_deserializeFromString(value);
   return ret;
  }
 }
 return null;
}

function leavePop_xGetElementById(e) {
  if(typeof(e)!='string') return e;
  if(document.getElementById) e=document.getElementById(e);
  else if(document.all) e=document.all[e];
  else e=null;
  return e;
}

function leavePop_xAddEventListener(e,eventType,eventListener,useCapture)
{
  if(!(e=leavePop_xGetElementById(e))) return;
  eventType=eventType.toLowerCase();
  var eh='e.on'+eventType+'=eventListener';
  if(e.addEventListener) e.addEventListener(eventType,eventListener,useCapture);
  else if(e.attachEvent) e.attachEvent('on'+eventType,eventListener);
  else eval(eh);
}

function leavePop_xGetElementsByTagName(tagName, parentEle)
{
  var list = null;
  tagName = tagName || '*';
  parentEle = parentEle || document;
  if (xIE4 || xIE5) {
    if (tagName == '*') list = parentEle.all;
    else list = parentEle.all.tags(tagName);
  }
  else if (parentEle.getElementsByTagName) list = parentEle.getElementsByTagName(tagName);
  return list || new Array();
}

function leavePop_HandleLinks(){
	document.leavePop_showPop = false;
	document.leavePop_linkClicked = false;
	
	var curHost = location.protocol+'//'+location.host+'/';
	var links = leavePop_xGetElementsByTagName('a');
	var l=links.length;
	for(var i=0;i<l;i++){
		var cLink = links[i];
		var href=cLink.getAttribute('href');
		var target = cLink.getAttribute('target');
		if(href && href.substring(0,curHost.length)!=curHost && leavePop_CheckTarget(target)){
			if(xMoz){
				leavePop_xAddEventListener(cLink,'mousedown',function(){
					document.leavePop_showPop=true;
					document.leavePop_linkClicked=true;
				});
			}else{
				leavePop_xAddEventListener(cLink,'click',function(){
					popShown = leavePop_cookieRead('leavePop_s');
					if(!(popShown&&typeof(popShown['shown'])!='undefined'&&popShown['shown'])){
						var win = window.open('popup.html','leavePop','width=280,height=250,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=no');
					}
				});
			}
		}else{
			leavePop_xAddEventListener(cLink,'click',function(){
				document.leavePop_showPop=false;
				document.leavePop_linkClicked=true;
			});
		}
	}
}

function leavePop_CheckTarget(target){
	//check if click will hide the current page
	if(!target){
		return true;
	}
	switch(target.toLowerCase()){
		case '_blank':
			return false;
			break;
		case '_top':
		case '_self':
			return true;
			break;
	}
	return false;
}

function leavePop_ExitSite(){
	popShown = leavePop_cookieRead('leavePop_s');
	if(popShown&&typeof(popShown['shown'])!='undefined'&&popShown['shown']) return;
	if(xMoz) return;
	//tijdelijk uitschakelen
	return;
	
	if(typeof(document.leavePop_dontPop)!='undefined'&&document.leavePop_dontPop) return;
	if(!document.leavePop_showPop && !document.leavePop_linkClicked){
		window.open(location.protocol+'//'+location.host+'/popup.html','leavePop','width=280,height=250,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=no');
	}
	if((document.leavePop_showPop && document.leavePop_linkClicked) || (!document.leavePop_linkClicked && !document.leavePop_showPop)){
		window.open(location.protocol+'//'+location.host+'/popup.html','leavePop','width=280,height=250,location=no,toolbar=no,menubar=no,scrollbars=no,resizable=no');
	}
	popShown['shown']=1;
	leavePop_cookieCreate('leavePop_s',popShown,3);
}

leavePop_xAddEventListener(window,'load',leavePop_HandleLinks);
leavePop_xAddEventListener(window,'unload',leavePop_ExitSite);
