_editor_url = "/js/htmlarea/";
var win_ie_ver = parseFloat(navigator.appVersion.split("MSIE")[1]);
if (navigator.userAgent.indexOf('Mac')        >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Windows CE') >= 0) { win_ie_ver = 0; }
if (navigator.userAgent.indexOf('Opera')      >= 0) { win_ie_ver = 0; }
if (win_ie_ver >= 5.5) {
  document.write('<scr' + 'ipt src="' +_editor_url+ 'editor.js"');
  document.write(' language="Javascript1.2"></scr' + 'ipt>');  
} else { 
  document.write('<scr'+'ipt>function editor_generate() { return false; }</scr'+'ipt>'); 
 }
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 windowSize() {
  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
	return new Array(myWidth, myHeight);
}
function trim(value) {
  value = value.replace(/^\s+/,'');
  value = value.replace(/\s+$/,'');
  return value;
}

function inArray (value,pArray)
// Returns true if the passed value is found in the
// array.  Returns false if it is not.
{
    var i;
    for (i=0; i < pArray.length; i++) {
        // Matches identical (===), not just similar (==).

        if (parseInt(pArray[i]) === parseInt(value)) {
            return true;
        }
    }
    return false;
};
Array.prototype.removeValue = function (string) {
	for(i=0 ; i < this.length ; i++){
        if(this[i] == string) {
                this.splice(i, 1)
        }
	}
}


var imgrowcount=1;
var filerowcount=1;
function addUploadField(p_sType)
{
	var row = null;
	var cell = null;
	if(p_sType == 'image')
	{		
		table = document.getElementById('upload_images');

		row = document.createElement("tr");
		cell1 = document.createElement("td");
		cell_ = document.createElement("td");
		cell2 = document.createElement("td");
		cell2.setAttribute("className", "text");
		cell2.style.verticalAlign = 'middle';
		
		row.appendChild(cell1);
		row.appendChild(cell_);
		row.appendChild(cell2);

		table.getElementsByTagName("tbody")[0].appendChild(row);
		

		if (cell1)
		{
		  	imgrowcount++;
		  	var d = document.createElement("div");
			d.setAttribute("className","input_text_browse");
			d.setAttribute("style","");
			d.style.width = "345px";
			d.style.height = "30px";
			d.style.margin = "5px 0px 0px 0px";
			d.style.background = "url('/images/form.elements/input_text_browse_345.gif')";
			
			var i = document.createElement("input");
			i.setAttribute("name","images["+imgrowcount+"][1]");
			i.setAttribute("type","file");
			i.style.width = "345px";
			i.attachEvent("onchange",function(){updateImage(i,'img_preview_')});
			i.attachEvent("onfocus",function(){updateImage(i,'img_preview_')});
			i.attachEvent("onclick",function(){updateImage(i,'img_preview_')});

		  	cell2.appendChild(d);
			d.appendChild(i);

			d = document.createElement("div");
			d.setAttribute("className","input_text_350");
			d.style.marginTop = "4px";
			d.style.height = '29px';

			i = document.createElement("input");
			i.setAttribute("name", "imagedescriptions["+imgrowcount+"]");
			i.setAttribute("type","text");
			i.style.width = "350px";
		  	cell1.appendChild(d);
			d.appendChild(i);
		} 
	}
}

function ChangeClass(obj, value) {
	if (value) {
		obj.className='listitem2';
	} else {
		obj.className='listitem1';
	}
}
function ChangeClassCat(obj, value) {
	if (value) {
		obj.className='listitem4';
	} else {
		obj.className='listitem3';
	}
}

var l_aDeletableFiles = Array();
function changeFileContainer(obj, id, p_sMouseMode){
	switch(p_sMouseMode)
	{
		case 'over':
			obj.style.background='#F5F5F5';
			if(!inArray(id,l_aDeletableFiles))
			{
				document.getElementById('file['+id+']').style.visibility='visible';
			}
		break;
		case 'out':
			if(l_aDeletableFiles.length > 0)
			{
				if(!inArray(id,l_aDeletableFiles)){
					document.getElementById('file['+id+']').style.visibility='hidden';
				} else {
					document.getElementById('file['+id+']').style.visibility='visible';
				}
			} else {
				document.getElementById('file['+id+']').style.visibility='hidden';
			}
			obj.style.background='none';
		break;
	}
}

function deleteFile(id) {
	var hiddenInput = document.getElementById('fileId'+id);
	var img = document.getElementById('file['+id+']');
	if (hiddenInput.value=='0') {
		hiddenInput.value='1';
		img.src='images/delete.gif';
		l_aDeletableFiles.push(id);
	} else {
		hiddenInput.value='0';
		l_aDeletableFiles.removeValue(id);
		img.src='images/undelete.gif';		
	}
}


function addInputField() {
	for(var c=1; c<=tabCount; c++)
	{
		var row = null;
		var cell = null;
		el = document.getElementById('tabPage1_'+c);
		if (el) {
		  inputfieldcount++;
		  el.innerHTML += 	'Optie '+inputfieldcount+'<br/><input type="text" name="option['+inputfieldcount+']['+c+']" value="" class="box_deletable" /><br/><br/>';
		}
	}
}
  
function updateImage(obj, image_id) {

  	var div = document.getElementById(image_id);
	for (i = 0; i < div.childNodes.length; i++) {
		if (div.childNodes[i].id == 'img_preview') {
			if (div.childNodes[i].nodeName == 'IMG') {
				var img = document.getElementById('img_preview');
			}
		}
	}
	
	var l_bAppend = false;
	if (!img) {
		var img = document.createElement('IMG');
		img.id = 'img_preview';
		l_bAppend = true;
	}

	if (obj.value != '') {
		if (obj.value.substr(obj.value.length-4,4) == ".pdf") {
			img.src = "/images/icons/filetype_pdf.png";
		} else {
			img.src = obj.value;
		}
		
		if (img.height < img.width) {
	
			img.width = 119 / img.height * img.width;
			
			img.height = 119;
			
			if (img.width > 129) {
				img.style.marginLeft = -1 * ((img.width - 129) / 2);
			}
		} else {			
			img.height = 129 / img.width * img.height;
			img.width = 129;
			
			if (img.height > 119) {
				img.style.marginTop = -1 * ((img.height - 119) / 2);
			}
		}
		
		if (l_bAppend)
			div.appendChild(img);
	} else {
	}
}

function canPost() {
	
	if(document.getElementById("imageproperties"))
	{
		if(document.getElementById("imageproperties").style.display == "block")
		{
			alert("U moet eerst de eigenschappen van de afbeelding sluiten");
			return false;
		}
	}
		var t_obj = document.getElementById('title[1]');
		
		if(t_obj)
		{
			if(t_obj.value.length < 1)
			{
				alert('Je hebt nog geen Nederlandse titel ingevuld.');

				t_obj.focus();
				return false;
			}
		}
	
	//var o_cnr = document.getElementById('b_cat_not_required');
	//if(o_cnr.value != 1)
	//{
		var obj = document.getElementById('cat_id[1]');
		if(obj)
		{
			if (obj.value == 'select') {
				alert('Je hebt geen categorie geselecteerd');
				return false;
			}
		}
	//}



	var key = 1;
	while(document.getElementById("cat_id["+key+"]")){
		key++;
	}
	key = key-1;
	if(key != 0)
	{
		while(document.getElementById("cat_id["+key+"]").value == 'NULL'){
			key--;
		}

		var e, cat_id, o_id, id;

		e = document.getElementById('cat_id['+key+']');
		cat_id = e.value;
		o_id = document.getElementById('id');
		if(!o_id)
			return true;
		id = o_id.value;

		if(id == cat_id){
			alert("Je kunt dit item niet onder zichzelf zetten"+"\n\n"+"Selecteer een andere item categorie.");
	//		e.focus();
			return false;
		}
	}
	return true;
}

function openDiv(p_sDivId){
	var e = document.getElementById(p_sDivId);
	if(e.style.display != 'block'){
		e.style.display = 'block';
	} else {
		e.style.display = 'none';
	}
}

function openModuleSelector() {
	var e = document.getElementById('module_selector_list');
	if(e)
	{
		if(e.style.display != 'block') {
			e.style.display = 'block';
		} else {
			e.style.display = 'none';
		}
	}
}

function checkMouse() {
	var e = document.getElementById('module_selector_list');
	if(!e)
		return;
	if(e.style.display == 'block')
	{
		var l_aCoordinates = getMouseXY();
		var l_aElementCoordinates = new Array(e.offsetLeft, (e.offsetLeft+350), e.offsetTop-25,(e.offsetTop+e.offsetHeight));
		
		if(l_aCoordinates[0] > l_aElementCoordinates[0] && l_aCoordinates[0] < l_aElementCoordinates[1] && l_aCoordinates[1] > l_aElementCoordinates[2] && l_aCoordinates[1] < l_aElementCoordinates[3])
		{
			//do nothing
		} else {
			e.style.display = 'none';
		}
	}
}

function getMouseXY()
{
	var IE = document.all?true:false;
	if (IE) { // grab the x-y pos.s if browser is IE
		tempX = event.clientX + document.body.scrollLeft;
		tempY = event.clientY + document.body.scrollTop;
	}
	else {  // grab the x-y pos.s if browser is NS
		tempX = e.pageX;
		tempY = e.pageY;
	}
	if (tempX < 0){ tempX = 0; }
	if (tempY < 0){ tempY = 0; }
	var l_aCoordinates = Array(tempX,tempY);
	return l_aCoordinates;
}
document.onclick = checkMouse;

function debuglog(str)
{
	if (document.getElementById("log"))
	{
		document.getElementById("log").value+=str + "\n";
		document.getElementById("log").style.display = 'inline';
		document.getElementById("log").scrollTop+=20;
	}
}

function dump(arr,level,maxlevel) 
{
	if(maxlevel == null)
		maxlevel = 2;
	
	var dumped_text = "";
	if(!level) level = 0;

	//The padding given at the beginning of the line.
	var level_padding = "";
	for(var j=0;j<level+1;j++) level_padding += "    ";

	if(maxlevel < level)
		return level_padding + "... object too big\n";

	
	if(typeof(arr) == 'object') 
	{ //Array/Hashes/Objects
		for(var item in arr) 
		{
			var value = arr[item];

			if(typeof(value) == 'object') 
			{ //If it is an array,
				dumped_text += level_padding + "'" + item + "' ...\n";
				dumped_text += dump(value,level+1);
			} else 
			{
				dumped_text += level_padding + "'" + item + "' => \"" + value + "\"\n";
			}
		}
	} 
	else 
	{ //Stings/Chars/Numbers etc.
		dumped_text = "===>"+arr+"<===("+typeof(arr)+")";
	}
	return dumped_text;
} 


function clearChildren(el)
{
	while (el.childNodes.length >= 1) {
		  el.removeChild(el.firstChild);
	}
}

function swapNode(item1,item2) {
	var itemtmp = item1.cloneNode(1);
	var parent = item1.parentNode;
	item2 = parent.replaceChild(itemtmp,item2);
	parent.replaceChild(item2,item1);
	parent.replaceChild(item1,itemtmp);
	itemtmp = null;
}


/** 
 * ADD EVENT
 *
 *
 */
function addEvent( obj, type, fn ) {
	if (obj.addEventListener) {
		obj.addEventListener( type, fn, false );
		EventCache.add(obj, type, fn);
	} else 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] );
		EventCache.add(obj, type, fn);
	} else {
		obj["on"+type] = obj["e"+type+fn];
	}
}

var EventCache = function(){
	var listEvents = [];
	return {
		listEvents : listEvents,
		add : function(node, sEventName, fHandler){
			listEvents.push(arguments);
		},
		flush : function(){
			var i, item;
			for(i = listEvents.length - 1; i >= 0; i = i - 1){
				item = listEvents[i];
				if(item[0].removeEventListener){
					item[0].removeEventListener(item[1], item[2], item[3]);
				};
				if(item[1].substring(0, 2) != "on"){
					item[1] = "on" + item[1];
				};
				if(item[0].detachEvent){
					item[0].detachEvent(item[1], item[2]);
				};
				item[0][item[1]] = null;
			};
		}
	};
}();

function html_entity_decode(str) {
  var ta=document.createElement("textarea");
  ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
  return ta.value;
}
