// JavaScript Document

var aPopups = new Array();
var aModalPopups = new Array();

window.onfocus = function()
{
	if(aModalPopups.length != 0)
	{
		aModalPopups[0].focus();
	}
}


var sDefaultFeatures = 'channelmode=0, fullscreen=0, location=0, menubar=0, resizable=0, scrollbars=0, status=0, titlebar=0, toolbar=0';

// create popup
function createPopup(sURL, sName, sFeatures, iWidth, iHeight)
{
	var iLeft	= (screen.availWidth - iWidth) / 2;
	var iTop	= (screen.availHeight - iHeight) / 2;
	
	return window.open(sURL, sName, sFeatures + ', width=' + iWidth + ', height=' + iHeight + ', left=' + iLeft + ', top=' + iTop);
}


// init thumbnails
function initThumbnails(){
	var aThumbnails = document.getElementsByTagName('img');
	var oThumbnail;
	
	for(var i = 0; i < aThumbnails.length; i++)	{
		oThumbnail = aThumbnails[i];
		
		if(oThumbnail.className.toLowerCase() == 'thumbnail'){
			
			oThumbnail.parentNode.setAttribute('naturalWidth', oThumbnail.width);
			oThumbnail.parentNode.setAttribute('naturalHeight', oThumbnail.height);
			
			// resize image
			if(oThumbnail.width > oThumbnail.height){
				oThumbnail.style.width = '90px';
			}else{
				oThumbnail.style.height = '60px';
			}
			
			// create popup
			oThumbnail.parentNode.onclick = function(){
				var iWidth = this.getAttribute('naturalWidth');
				var iHeight = this.getAttribute('naturalHeight');
				
				createPopup(this.getAttribute('href'), 'thumbnail', sDefaultFeatures, iWidth, iHeight);
				
				return false;
			}
		}
	}
}


// mark links
function markLinks(){
	var aLinks = document.getElementsByTagName('a');
	var oLink, oMark;
	
	for(var i = 0; i < aLinks.length; i++){
		oLink = aLinks[i];
		
		if(oLink.getElementsByTagName('img').length == 0){
			
			switch(oLink.getAttribute('rel')){
				case 'ext': case 'external':
					oLink.className += ' external';
					oLink.target = '_blank';
					
					
					if(oLink.getAttribute('href').indexOf('.pdf') != -1){
						oMark = document.createElement('img');
						oMark.src = '/data/pdf_ico.png';
						oLink.insertBefore(oMark , (oLink.firstChild));
					}else{
						oMark = document.createElement('img');
						oMark.src = '/data/external_ico.png';
						oLink.appendChild(oMark);
					}
					
					break;
			}
		}
	}
	
	aLinks = document.getElementById('content').getElementsByTagName('a');
	
	for(var i = 0; i < aLinks.length; i++){
		if(aLinks[i].getAttribute('href')){
			oHref = document.createElement('span');
				oHref.className = 'print';
				oHref.appendChild((document.createTextNode(' [' + aLinks[i].href + ']')));
			
			aLinks[i].appendChild(oHref);
		}
	}
}

// zoomlinks
function initZoom(){
	switch(getCookie('switchZoom')){
		case 'zoom-small':
			document.getElementsByTagName('body')[0].className += ' zoom-small';
			break;
		case 'zoom-medium':
			document.getElementsByTagName('body')[0].className += ' zoom-medium';
			break;
		case 'zoom-large':
			document.getElementsByTagName('body')[0].className += ' zoom-large';
			break;
		default:
			document.getElementsByTagName('body')[0].className += ' zoom-small';
			break;
	}
}

function switchZoom(zoomClassName){
	var sClassName = document.getElementsByTagName('body')[0].className;
		sClassName = sClassName.replace(' zoom-small', '');
		sClassName = sClassName.replace('zoom-small', '');
		sClassName = sClassName.replace(' zoom-medium', '');
		sClassName = sClassName.replace('zoom-medium', '');
		sClassName = sClassName.replace(' zoom-large', '');
		sClassName = sClassName.replace('zoom-large', '');
		sClassName += ' ' + zoomClassName;
	
	document.cookie = 'switchZoom=' + zoomClassName + '; path=/';
	document.getElementsByTagName('body')[0].className = sClassName;
}

// getcookie
function getCookie(sName){
	var aCookie = document.cookie.split("; ");
	
	for (var i=0; i < aCookie.length; i++){
		var aCrumb = aCookie[i].split("=");
		if (sName == aCrumb[0]){
			return unescape(aCrumb[1]);
		}
	}
	
	return null;
}



// 
document.getElementsByClassName = function (needle){
    var s = [document.documentElement || document.body], i = 0, r = [], l = 0, e;
    var re = new RegExp('(^|\\s)' + needle + '(\\s|$)');

    do{
        e = s[i];

        while (e){
            if (e.nodeType == 1){
                if (e.className && re.test(e.className)) r[l++] = e;

                s[i++] = e.firstChild;
            }

            e = e.nextSibling;
        }
    }
	
    while (i--);

    return r;
}


/*
	init table styling
		- row behavior
		- zebra tables
*/
function initTableStyling(){
	
	var tbodies = document.getElementsByTagName('tbody');
	var isEven = false;
	
	for(var i = 0; i < tbodies.length; i++){
		var rows = tbodies[i].getElementsByTagName('tr');
		
		for(var ii = 0; ii < rows.length; ii++){
			var row = rows[ii];
			if(isEven){
				row.className = row.className.replace('odd', '');
				row.className = row.className.replace('  ', ' ');
				row.className = 'even';
				isEven = false;
			}else{
				row.className = row.className.replace('even', '');
				row.className = row.className.replace('  ', ' ');
				row.className = 'odd';
				isEven = true;
			}
			
			// mouseover
			row.onmouseover = function(){
				this.className += ' hover';
			}
			
			// mouse out
			row.onmouseout = function(){
				this.className = this.className.replace('hover', '');
				this.className = this.className.replace('  ', ' ');
			}
		}
	}
	
}



function requireRegistration(){
		var links = document.getElementsByTagName('a');
		
		for(var i = 0; i < links.length; i++){
			if(links[i].href.toLowerCase().indexOf('.pdf') != -1){
				links[i].onclick = function(){
					alert('Register or login before downloading.');
					window.location.href = '/nl/login/';
					return false;
				}
			}
		}
	}
