var _W=window,_D=document,popupEl,nrSteps=15,dragObj,dragX,dragY,dragZ=1,close_n=new Image(13,13),close_h=new Image(13,13);

close_h.src = '/weblog/pics/close_hi.gif';
close_n.src = '/weblog/pics/close.gif';
_D.onmouseup=function(){try{dragObj=_D.onselectstart=_D.onmousemove=null}catch(e){}};

function sniff(){
   var t=this,T=true,F=false,n=navigator,ua=n.userAgent.toLowerCase();
   t.ver=parseInt(n.appVersion);
   t.mac=ua.indexOf('mac')!=-1;
   t.win=!t.mac&&ua.indexOf('wind')!=-1||ua.indexOf('16bit')!=-1;
   t.safari=ua.indexOf('safari')!=-1&&t.mac;
   t.konq=ua.indexOf('konqueror')!=-1;
   t.khtml=t.safari||t.konq;
   t.opera=_W.opera?T:F;
   t.opera5=ua.indexOf('opera 5')!=-1||ua.indexOf('opera/5')!=-1;
   t.opera6=ua.indexOf('opera 6')!=-1||ua.indexOf('opera/6')!=-1;
   t.opera7=t.opera&&_D.createComment?T:F;
   t.ie5=t.ie55=t.ie6=F;
   t.ie=_D.all&&!t.opera&&ua.indexOf('msie')!=-1?T:F;
   if(t.ie){
      t.ieBox=_D.compatMode!='CSS1Compat';
      t.ie5=!_D.fireEvent?T:F;
      t.ie55=_D.fireEvent&&!_D.createComment?T:F;
      t.ie6=_D.fireEvent&&_D.createComment?T:F
   }
   t.gecko=!t.khtml&&!_D.all&&!t.opera&&_D.getElementById?T:F;
   t.ns4=n.appName=='Netscape'&&t.ver==4
}
is=new sniff();
op=is.opera;

function gE(e){if(_D.getElementById)return _D.getElementById(e);if(_D.all)return _D.all[e]}
function sE(e){e.style.visibility='visible'}
function hE(e){e.style.visibility='hidden'}
function SE(e){e.style.display=''}
function HE(e){e.style.display='none'}
function sX(e,x){op?e.style.pixelLeft=x:e.style.left=x+'px'}
function sY(e,y){op?e.style.pixelTop=y:e.style.top=y+'px'}
function sW(e,w){op?e.style.pixelWidth=w:e.style.width=w+'px'}
function sH(e,h){op?e.style.pixelHeight=h:e.style.height=h+'px'}
function wH(e,h){e.innerHTML=h}

function getWinSize(what) {
   if (what == 'height')
      return (is.ie) ? (is.ieBox) ? _D.body.clientHeight : _D.documentElement.clientHeight : _W.innerHeight;
   if (what == 'width')
      return (is.ie) ? (is.ieBox) ? _D.body.clientWidth : _D.documentElement.clientWidth : _W.innerWidth;
}

function makePopup(e, width, height, title, url) {
   killPopup(1);
   height += 24;
   var wh = getWinSize('height'), ww = getWinSize('width'), st, sl;
   if (!e) {
      e = new Object();
      e.clientX = ww/2-width/2;
      e.clientY = wh/2-height/2;
   }
   var top = e.clientY, left = e.clientX;
   if (is.ie) {
      sl = (is.ieBox) ? _D.body.scrollLeft : _D.documentElement.scrollLeft;
      st = (is.ieBox) ? _D.body.scrollTop  : _D.documentElement.scrollTop;
   }
   else {
      sl = _W.pageXOffset;
      st = _W.pageYOffset;
   }
   if (e.clientX + width > ww)
      left = ww-width-5;
   if (e.clientY + height > wh)
      top = wh-height-5;

   popupEl = _D.createElement('div');
   popupEl.onmousedown=function(event){dragStart(event,this)};
   popupEl.className = 'popup';
   _D.body.appendChild(popupEl);
   sizePopup(title,url,left+sl,top+st,width,height,nrSteps);
}

function sizePopup(title,url,left,top,width,height,step) {
   // New and improved: with slomogrow effect!
   var html, mouse;
   if (step < 0) {
      if (is.ie) {
         sW(popupEl, width+2);
         sH(popupEl, height+2);
      }
      mouse = (is.ie) ? 'onmouseover="this.src=close_h.src" onmouseout="this.src=close_n.src"' : '';
      html  = '<table class="popupCaption" cellpadding="0" cellspacing="3"><tr>';
      html += '<td width="99%" align="center">'+title+'</td>';
      html += '<td width="1%" align="right"><img src="/weblog/pics/close.gif" class="ptr" width="13" height="13" vspace="2" alt="Close" onclick="killPopup(0)" '+mouse+' /></td>';
      html += '</tr></table>';
      wH(popupEl, html+'<iframe frameborder="0" src="'+url+'" style="width:'+width+'px;height:'+(height-24)+'px"></iframe>');
      return;
   }
   sX(popupEl, left + step*width/nrSteps/2);
   sY(popupEl, top + step*height/nrSteps/2);
   sW(popupEl, width - step*width/nrSteps);
   sH(popupEl, height - step*height/nrSteps + (is.safari?2:0));
   setTimeout("sizePopup('"+title+"','"+url+"',"+left+","+top+","+width+","+height+","+(step-1)+")",0);
}

function killPopup(now) {
   if (popupEl) {
      var code = '_D.body.removeChild(popupEl);popupEl=null;';
      if (now)
         eval(code);
      else
         setTimeout(code,10);
   }
}

function dragStart(e,el) {
   if (!e)e=_W.event;
   dragObj = el;
   dragObj.style.zIndex = dragZ++;
   dragX = e.clientX - dragObj.offsetLeft;
   dragY = e.clientY - dragObj.offsetTop;
   _D.onmousemove=dragMove;
   _D.onselectstart=function(){return false};
}

function dragMove(e) {
   if (!e)e=_W.event;
   if(dragObj) {
      sX(dragObj,e.clientX - dragX);
      sY(dragObj,e.clientY - dragY);
   }
}

function reloadPage() {
	var loc = _D.location, sep, newUrl, anchor, url = loc.protocol + '//' + loc.hostname + loc.pathname;
	if(loc.search)
		url += loc.search;
	anchor = loc.hash;
	url = url.replace(/[&\?]_rnd=(\d+)/,'');
	sep = url.indexOf('?') == -1 ? '?' : '&';
	newUrl = url + sep + '_rnd='+Math.round(Math.random()*9999);
	if (anchor) newUrl += '#' + anchor;
	_D.location.href = newUrl;
}

function det_replace(type, text)
{
	var val = '';
	switch (type)
	{
		case 'plain':
			break;
		case 'bold':
			text = '[b]'+text+'[/b]';
			break;
		case 'italic':
			text = '[i]'+text+'[/i]';
			break;
		case 'underline':
			text = '[u]'+text+'[/u]';
			break;
		case 'url':
			if (/^(http:\/\/)/i.test(text))
			{
				val = prompt('Omschrijving hyperlink:', text);
				if (val !== null && val != '') text = '[url='+text+']'+val+'[/url]';
			}
			else
			{
				val = prompt('URL hyperlink:','http:\/\/');
				if (val !== null && val != 'http:\/\/')
				{
					if (text == '') text = '[url]'+val+'[/url]';
					else text = '[url='+val+']'+text+'[/url]';
				}
			}
			break;
		case 'hr':
			text += '[hr]';
			break;
	}
	return text;
}

function storeCursor(el)
{
	if (typeof el.createTextRange != 'undefined')
		el.cursorPos = _D.selection.createRange().duplicate();
}

function editCmd(elID, type, text)
{
	var target = _D.getElementById(elID);

	if (target)
	{
		target.focus();
		storeCursor(target);
		if (typeof target.cursorPos != 'undefined')
		{
			var cursorPos = target.cursorPos;
			if (type != 'plain') text = cursorPos.text;
			cursorPos.text = det_replace(type, text);
		}
		else if (typeof target.selectionStart != 'undefined')
		{
			var scrollTop = target.scrollTop;

			var sStart = target.selectionStart;
			var sEnd = target.selectionEnd;
			if (type != 'plain') text = target.value.substring(sStart, sEnd);
			text = det_replace(type, text);
			target.value = target.value.substr(0, sStart) + text + target.value.substr(sEnd);
			var nStart = sStart == sEnd ? sStart + text.length : sStart;
			var nEnd = sStart + text.length;
			target.setSelectionRange(nStart, nEnd);

			target.scrollTop = scrollTop;
		}
		else
		{
			if (type != 'plain') text = '';
			target.value += det_replace(type, text);
		}
		target.focus();
		storeCursor(target);
	}
}
