// variabelen

agt       = navigator.userAgent.toLowerCase();
is_ie	   = ((agt.indexOf("msie") != -1) && (agt.indexOf("opera") == -1));
is_opera  = (agt.indexOf("opera") != -1);
is_mac	   = (agt.indexOf("mac") != -1);
is_mac_ie = (is_ie && is_mac);
is_win_ie = (is_ie && !is_mac);
is_gecko  = (navigator.product == "Gecko");

// events

function addEvent( obj, type, fn ) { 
  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 ); 
} 

// css

function hasClass(ele,cls) {
	return ele.className.match(new RegExp('(\\s|^)'+cls+'(\\s|$)'));
}
function addClass(ele,cls) {
	if (!this.hasClass(ele,cls)) ele.className += " " + cls;
}
function removeClass(ele,cls) {
	if (hasClass(ele,cls)) {
		var reg = new RegExp('(\\s|^)'+cls+'(\\s|$)');
		ele.className=ele.className.replace(reg,' ');
	}
}

// arrays

Array.prototype.remove=function(s){
	for(i=0;i<this.length;i++){
		if(s==this[i])
			this.splice(i, 1);
		}
}

// dhtml

frameWidth=0;
frameHeight=0;

function initFrameDim(){

if (self.innerWidth)
{
	frameWidth = self.innerWidth;
	frameHeight = self.innerHeight;
}
else if (document.documentElement && document.documentElement.clientWidth)
{
	frameWidth = document.documentElement.clientWidth;
	frameHeight = document.documentElement.clientHeight;
}
else if (document.body)
{
	frameWidth = document.body.clientWidth;
	frameHeight = document.body.clientHeight;
}
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function insertAfter(parent, node, referenceNode) {
	parent.insertBefore(node, referenceNode.nextSibling);
}

function removeWithChildren(obj){

while (obj.hasChildNodes())
	obj.removeChild(obj.firstChild);
obj.parentNode.removeChild(obj);

}

if(! is_ie) {
	Node.prototype.swapNode = function (node) {
	var nextSibling = this.nextSibling;
	var parentNode = this.parentNode;
	node.parentNode.replaceChild(this, node);
	parentNode.insertBefore(node, nextSibling);  
	}
}

var Move =	{

	copy	:	function(e, target)	{ 
				var	eId		= $(e);
				var	copyE	= eId.cloneNode(true);
				var cLength	= copyE.childNodes.length -1;
				copyE.id	= e+'-copy';

				for(var i = 0; cLength >= i;  i++) {
					if(copyE.childNodes[i].id) {
					var cNode	= copyE.childNodes[i];
					var firstId	= cNode.id;
					cNode.id	= firstId+'-copy'; }
				}
				$(target).appendChild(copyE);
				},
	element	:	function(e, target, type)	{
				var eId	=	$(e);
				if(type == 'move') { $(target).appendChild(eId); }

				else if(type == 'copy')		{ 
					this.copy(e, target);
				}
				}
}

function moveNode(e, target){
var eId =  document.getElementById(e);
document.getElementById(target).parentNode.insertBefore( document.getElementById(e), document.getElementById(target) );
}

function copyNode(e, target)	{
	    var eId      = document.getElementById(e);
	    var copyE    = eId.cloneNode(true);
	    var cLength  = copyE.childNodes.length -1;
	    copyE.id     = e+'-copy';

	    for(var i = 0; cLength >= i;  i++)	{
		    if(copyE.childNodes[i].id) {
			    var cNode   = copyE.childNodes[i];
			    var firstId = cNode.id;
			    cNode.id    = firstId+'-copy';
				}
		    }
	    document.getElementById(target).appendChild(copyE);
	    }

function SelectMultipleOptionInList( obj, dir ) {
var intIndex = 0;
if(document.getElementById(obj))
	for( intIndex = 0; intIndex < document.getElementById(obj).options.length; intIndex++ ) {
		if( document.getElementById(obj).options[intIndex].value == dir ) {
			document.getElementById(obj).options[intIndex].selected = true;
			break;
			}
		}
}

function SelectOptionInList( obj, dir ) {
var intIndex = 0;
if(document.getElementById(obj))
	for( intIndex = 0; intIndex < document.getElementById(obj).options.length; intIndex++ ) {
		if( document.getElementById(obj).options[intIndex].value == dir ) {
			document.getElementById(obj).selectedIndex = intIndex;
			break;
			}
		}
}

// this is simply easier on the eyes and fingers
function $(id)
{
    return document.getElementById(id);
}

// file

function xtractFile(data){
var m = data.match(/(.*)\/([^\/\\]+)(\.\w+)$/);
return {path: m[1], file: m[2], extension: m[3]}
}

//
//	C&F functies
//
systemMsgCnt=0;

function displaySystemMessage(msg,dtime){

div = document.createElement("div");
div.setAttribute("id",'systemmsg'+systemMsgCnt);
div.innerHTML=msg;
div.className='cmsbig';
div.style.width='450px';
div.style.zIndex=(5000+systemMsgCnt);
div.style.position='absolute';
div.style.display='block';
div.style.left=(frameWidth/2-250)+'px';
div.style.top='100px';
document.body.appendChild(div);
setTimeout("removeWithChildren(document.getElementById('systemmsg"+systemMsgCnt+"'))",1500);
systemMsgCnt++;
}

function addLogMessage(msg){
if(document.getElementById('log')){
	document.getElementById('log').innerHTML = msg + document.getElementById('log').innerHTML;
	}
}

//////////////////// maak CF-window ///////////////////////////

function makeCFWindow(id){

divWindow = document.createElement("div");

divWindow.setAttribute("id",id);

	divWindow.style.display = 'none';

	divWindow.innerHTML='<table border=0 id="'+id+'Table" oncontextmenu="return false" class=cmssmall cellpadding=0 cellspacing=0> \
	<tr> \
	 <td style="background: url(/admin/img/itl.gif);width:40px;height:40px;"></td> \
	 <td colspan=2 style="background:url(/admin/img/itm.gif);height:40px;"></td> \
	 <td style="background:url(/admin/img/itr.gif);width:40px;height:40px;"></td> \
	</tr> \
	<tr> \
	 <td style="background:url(/admin/img/ilm.gif);"></td> \
	 <td id="'+id+'Title" style="background-color:#ffffff;"> \
	 </td> \
	 <td id="'+id+'Menu" style="background-color:#ffffff;"> \
	<img onclick="removeWithChildren(document.getElementById(\''+id+'\'));" align=right title="sluiten" id="x'+id+'" src="/admin/img/cross.gif" border=0 class=point> \
	</td> \
	 <td style="background:url(/admin/img/irm.gif);"></td> \
	</tr> \
	<tr> \
	 <td style="background:url(/admin/img/ilm.gif);"></td> \
	 <td colspan=2 style="background-color:#ffffff;"> \
		<div id="'+id+'Content">\
		</div> \
	</td> \
	 <td style="background:url(/admin/img/irm.gif);"></td> \
	</tr> \
	<tr> \
	 <td style="background:url(/admin/img/ibl.gif);width:40px;height:40px;">&nbsp;</td> \
	 <td colspan=2 style="background:url(/admin/img/ibm.gif);height:40px;"></td> \
	 <td style="background:url(/admin/img/ibr.gif);width:40px;height:40px;"></td> \
	</tr> \
	</table>';

	document.body.appendChild(divWindow);

return divWindow;
}

function setCFWindowTitle(id,title){
document.getElementById(id.id+'Title').innerHTML=title;
}
function setCFWindowMenu(id,menu){
document.getElementById(id.id+'Menu').innerHTML=menu;
}
function setCFWindowContent(id,ccontent){
document.getElementById(id.id+'Content').innerHTML=ccontent;
}
function addCFWindowContent(id,ccontent){
var D=document.getElementById(id.id+'Content').innerHTML;
document.getElementById(id.id+'Content').innerHTML=D+ccontent;
}
function moveCFWindowTo(id,target,deltaX,deltaY){
if(!id || !target)
	return;

var coords=findPos(target);
id.style.position='absolute';
id.style.left=(coords[0]+deltaX)+'px';
id.style.top=(coords[1]+deltaY)+'px';
}
function makeCFWindowDragable(id){
if(document.getElementById(id)){
	document.getElementById(id).className = "dragme";
	document.getElementById(id).onmousedown=selectmouse; 
	document.getElementById(id).onmouseup=new Function("isdrag=false"); 
	}
}

// forms

function SetInputValue( obj, value ){
if(obj){
	if(obj.type=="checkbox" && value!=0)
		obj.checked=true;
	else if(obj.type=="text")
		obj.value=value;
	else if(obj.type=="select-one"){
		SelectOptionInList( obj.id, value );
		}
	}
}

// converteer html-codes naar ascii

function html_entity_decode(str) {
  var ta=document.createElement("textarea");
  ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
  return ta.value;
}

// simpele conversie ascii - html; eerste opzet

function AsciiToHtml(text){

r = new Array();
s = new Array();

r[0] = /€/g
r[1] = /Ÿ/g
r[2] = /Š/g
r[3] = /š/g
r[4] = /Œ/g
r[5] = /œ/g

r[6] = /†/g
r[7] = /‡/g

r[8] = /•/g
r[9] = /…/g

r[10] = /‰/g
r[11] = /‹/g
r[12] = /›/g
r[13] = /™/g

r[14] = /ƒ/g
r[15] = /ˆ/g
r[16] = /˜/g
r[17] = /–/g
r[18] = /—/g
r[19] = /‘/g
r[20] = /’/g
r[21] = /‚/g

r[22] = /„/g
r[23] = /“/g
r[24] = /”/g

s[0] = "<euro>";
s[1] = "<Yuml>";
s[2] = "<Scaron>";
s[3] = "<scaron>";
s[4] = "<Oelig>";
s[5] = "<oelig>";

s[6] = "<dagger>";
s[7] = "<Dagger>";

s[8] = "<bull>";
s[9] = "<hellip>";

s[10] = "<permil>";
s[11] = "<lsaquo>";
s[12] = "<rsaquo>";
s[13] = "<trade>";

s[14] = "<fnof>";
s[15] = "<circ>";
s[16] = "<tilde>";
s[17] = "<ndash>";
s[18] = "<mdash>";

s[19] = "<lsquo>";
s[20] = "<rsquo>";
s[21] = "<sbquo>";

s[22] = "<bdquo>";
s[23] = "<ldquo>";
s[24] = "<rdquo>";

for(var i=0;i<r.length;i++){
	text = text.replace( r[i], s[i] );
	}

return text;
}

function encode_utf8( s ){
	return unescape( encodeURIComponent( s ) );
	}
function decode_utf8( s ){
	return decodeURIComponent( escape( s ) );
	}

/////////////// arrays ///////////////////////////

function array_delItem(ar, itemValue){

	for (elementnr=0;elementnr<ar.length;elementnr++) {

		if(ar[elementnr] == itemValue) {

			for (i=0;i<(ar.length-1);i++) {
				ar[i] = ar[i + 1];
				}

			ar.length=ar.length-1;
			break;
			}

		}
return ar;
}
