/*******************************************************
 * onload...
 *******************************************************/
AddToInitArray(function() {
	// set iframe height...
	if (document.body.id =="iframe") {
		window.top.name = "top";
		parent.document.getElementById("aiframe").style.height = document.getElementById("tekst").offsetHeight+80+"px";
		var a = document.getElementById("tekst").getElementsByTagName("A");
		for (var i = 0; i < a.length; i++) {
	 		a[i].href = a[i].href.replace(/conpag=p\d+/, "conpag=");
	 		a[i].href = a[i].href.replace(/template=agenda_rechts/, "template=agenda_list");
	 		a[i].target = "top";
	 	}
	}
	
	// any sortable tables?
	if (!inCMS()) {
		var st = document.getElementsByClassName("tablec", document.getElementById("tekst"));
		for (var i = 0; i < st.length; i++) {
			tableSortInit(st[i]);
		}
	}
});

function setPageHeight() {
	document.getElementById("page").style.height = "100%";
                var height = (document.documentElement ? document.documentElement : document.body).scrollHeight;
                if (height < document.body.scrollHeight) height = document.body.scrollHeight; // fix for safari which has documentElement, but that has only height of viewport
	document.getElementById("page").style.height = height+"px";
}
AddToInitArray(setPageHeight);
window.onresize = setPageHeight;

/*******************************************************
 * editors on homepage...
 *******************************************************/
var gRedF = [];
var gRedR = [];
function showReds() {
	var i = 0;
	for (i; i < gRedF.length; i++) {
		document.write('<a href="'+gRedF[i][2]+'"><img src="'+gRedF[i][1]+'" alt="" /><br />'+gRedF[i][0]+'</a>');
	}
	if (i < 3) {
		gRedR = fisherYates(gRedR);
		for (var j = 0; j < gRedR.length && j < 3-i; j++) {
			document.write('<a href="'+gRedR[j][2]+'"><img src="'+gRedR[j][1]+'" alt="" /><br />'+gRedR[j][0]+'</a>');
		}
	}
}

function fisherYates(myArray) {
	var i = myArray.length;
	if (i != 0) {
		while (--i) {
			var j = Math.floor(Math.random()*(i+1));
			var tempi = myArray[i];
			myArray[i] = myArray[j];
			myArray[j] = tempi;
		}
	}
	return myArray;
}

/*******************************************************
 * sortable tables...
 *******************************************************/
function tableSortInit(table) {
	var thead = table.getElementsByTagName("THEAD")[0];
	var tr = thead.rows[0];
	for (var i = 0; i < tr.cells.length; i++) {
		xcmsAddEventListener(tr.cells[i], "click", tableSort);
	}
}
function tableSort(evt) {
	evt = (evt) ? evt : ((event) ? event : null);
	if (evt) {
		var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
		var table = elem.parentNode.parentNode.parentNode;
		var tbody = table.getElementsByTagName("TBODY")[0];
		
		// get data from column to sort on...
		var data = [];
		for (var i = 0; i < tbody.rows.length; i++) {
			data.push([i, tbody.rows[i].cells[elem.cellIndex].innerText]);
		}
		
		// sort...
		data.sort(function(a,b) {
			if (a[1] < b[1]) {
		        return -1;
     		} else if (a[1] > b[1]) {
        		return  1;
     		} else {
        		return 0;
        	}
     	});

		// reverse... (every other click...)
		if (elem.sorted) {
			elem.sorted = 0;
			data.reverse();
		} else {
			elem.sorted = 1;
		}
	    
	    // reshuffle rows...
	    var newrows = [];
	    for (var i = 0; i < data.length; i++) {
	      newrows.push(tbody.rows[data[i][0]]);
	    }
	    for (var i = 0; i < newrows.length; i++) {
	       tbody.appendChild(newrows[i]);
	    }
	    delete newrows;
	}
}

/*******************************************************
 * mail a friend...
 *******************************************************/
function mailafriend(url) {
	var page = location.href;
	var title = document.getElementsByTagName("TITLE")[0].innerText;
	if (!/^\//.test(url)) url = "/"+url;
	location.href = url+"?page="+encodeURIComponent(page)+";title="+encodeURIComponent(title);
	return false;
}

/*******************************************************
 * overzicht A-Z
 *******************************************************/
var goverzichAZTitles = [];
var goverzichtAZHash = {};
var goverzichtChar;
var goverzichtPage;
var goverzichtPerPage = 1000;
var goverzichtInitDone = false;
function overzichtAZInit(chr, page) {
	var table = document.getElementById("otable");
	if (!goverzichtInitDone) {
		goverzichtPage = 0;
		for (var cc in goverzichtAZHash) {
			var a = document.getElementById("otable"+cc);
			xcmsRemoveClassName(a, "current");
			xcmsAddClassName(a, "inactive");
		}
		goverzichtAZHash = {};
		for (var i = 0; i < goverzichAZTitles.length; i++) {
			var c = goverzichAZTitles[i].toLowerCase().charAt(0);
			if (c < 'a' || c > 'z') c = '0';
			if (!goverzichtAZHash[c]) goverzichtAZHash[c] = 0;
			goverzichtAZHash[c]++;
			xcmsAddClassName(table.rows[i], "otable"+c);
		}
		goverzichtInitDone = true;
	}
		
	// init a-z...
	for (var cc in goverzichtAZHash) {
		var a = document.getElementById("otable"+cc);
		xcmsRemoveClassName(a, "current");
		xcmsRemoveClassName(a, "inactive");
	}
	if (!goverzichtAZHash[chr]) {
		chr = '0';
		for (var i = 97; i < 123; i++) {
			if (goverzichtAZHash[String.fromCharCode(i)]) {
				chr = String.fromCharCode(i);
				break;
			}
		}
	}
	goverzichtChar = chr;
	
	var n = goverzichtPerPage;
	goverzichtPage = page || 1;
	var skip = n*(goverzichtPage-1);
	var i = 0;
	// hide all
	for (i = 0; i < table.rows.length; i++) {
		xcmsAddClassName(table.rows[i], "hide");
	}
	// show selection
	for (i = 0; i < table.rows.length && n; i++) {
		if (xcmsHasClassName(table.rows[i], "otable"+chr)) {
			if (skip-- > 0) continue;
			xcmsRemoveClassName(table.rows[i], "hide");
			xcmsRemoveClassName(table.rows[i], "lastrow");
			//(n%2) ? xcmsAddClassName(table.rows[i], "odd") : xcmsRemoveClassName(table.rows[i], "odd");
			n--;
		}
	}
	xcmsAddClassName(document.getElementById("otable"+chr), "current");
	
	// paging
	var nn = goverzichtAZHash[chr];
	var html = '';
	if (nn > goverzichtPerPage) {
		html +=
	    	'<li><a href="#" onclick="javascript:return overzichtAZGoToPage(1)"><img src="/css/sociaalfondstaxi/gfx/fprev.gif" alt="Eerste" /></a></li>'+
	    	'<li><a href="#" onclick="javascript:return overzichtAZGoToPrevPage()">VORIGE</a></li>';
		var pages = Math.ceil(nn/goverzichtPerPage);
		for (var i = 1; i <= pages; i++) {
			if (i == goverzichtPage) {
				html += '<li><span>'+i+'</span></li>';
			} else {
				html += '<li><a href="#" onclick="javascript:return overzichtAZGoToPage('+i+')">'+i+'</a></li>';
			 }
	    }
	    html +=
	    	'<li><a href="#" onclick="javascript:return overzichtAZGoToNextPage()">VOLGENDE</a></li>'+
	    	'<li><a href="#" onclick="javascript:return overzichtAZGoToPage('+pages+')"><img src="/css/sociaalfondstaxi/gfx/fnext.gif" alt="Laatste" /></a></li>';
	    document.getElementById("pagingbottom").innerHTML = html;
	    document.getElementById("pagingbottom").style.display = "block";
	} else {
	    document.getElementById("pagingbottom").style.display = "none";
	}
}

function overzichtGotToChar(chr) {
	overzichtAZInit(chr, goverzichtPage);
	return false;
}
function overzichtAZGoToPage(p) {
	overzichtAZInit(goverzichtChar, p);
	return false;
}
function overzichtAZGoToPrevPage() {
	goverzichtPage--;
	if (goverzichtPage < 1) goverzichtPage = 1;
	overzichtAZGoToPage(goverzichtPage);
	return false;
}
function overzichtAZGoToNextPage(p) {
	goverzichtPage++;
	var pages = Math.ceil(goverzichtAZHash[goverzichtChar]/goverzichtPerPage);
	if (goverzichtPage > pages) goverzichtPage = pages;
	overzichtAZGoToPage(goverzichtPage);
	return false;
}
function overzichtAZUnfold(a, id) {
  document.getElementById(a.id.replace(/t/,"e")).style.display = "block";
  if (id) {
	var img = document.createElement("IMG");
  	img.src = "/cgi/vcount.cgi?site=europeseaanbestedingen;page="+id;
  }
  return false;
}

function initTagCloud() {
  var t = document.getElementsByClassName("xcms_tagcloud", document.getElementById("right"));
  if (t.length) {
    var a = t[0].getElementsByTagName("A");
    for (var i = 0; i < a.length; i++) {
      xcmsAddEventListener(a[i], "click", function(evt) {
	evt = (evt) ? evt : ((event) ? event : null);
	if (evt) {
		var elem = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
	        var as = document.getElementById("tekst").getElementsByTagName("A");
		for (var i = 0; i < as.length; i++) {
			if (elem.href.indexOf(as[i].getAttribute("cloudid")) != -1) {
					var x = /\/(.)[^/]*$/.exec(as[i].getAttribute("cloudid"));
					overzichtGotToChar(x[1]);
					overzichtAZUnfold(as[i]);
					location.hash = "#"+as[i].id;
			}
		}		
	}
	preventDefault(evt);
        return false;
      });
    }
  }
}
