var ADMIN = typeof ADMIN != 'undefined';



function addLoadEvent( func )
{
	var oldOnLoad = window.onload;
	if ( typeof window.onload != 'function' ) {
		window.onload = func;
	}
	else {
		window.onload = function() {
			oldOnLoad();
			func();
		}
	}
}



function attachEventListener( target, eventType, functionRef, capture )
{
    if ( typeof target.addEventListener != 'undefined' ) {
        target.addEventListener( eventType, functionRef, capture );
    }
    else if ( typeof target.attachEvent != 'undefined' ) {
        target.attachEvent( 'on' + eventType, functionRef );
    }
	else {
        eventType = 'on' + eventType;

        if ( typeof target[eventType] == 'function' ) {
            var oldListener = target[eventType];

            target[eventType] = function() {
                oldListener();

                return functionRef();
            }
        }
		else {
            target[eventType] = functionRef;
        }
    }

    return true;
}



function stopDefaultAction( event )
{
    event.returnValue = false;

    if ( typeof event.preventDefault != 'undefined' ) {
        event.preventDefault();
    }

    return true;
}




// Toggle password visibility
function togglePassword()
{
	var showPassword = document.getElementById( 'showPassword' );
	
	if ( showPassword ) {
		showPassword.onclick = function() {
			var sitePassword = document.forms[0].sitePassword;
			try {
				// All but IE
				sitePassword.type = ( this.checked ? 'text' : 'password' );
			}
			catch( e ) {
				// IE
				var sitePasswordClone   = document.createElement( 'input' );
				sitePasswordClone.size  = 10;
				sitePasswordClone.id    = 'sitePassword';
				sitePasswordClone.name  = 'sitePassword';
				sitePasswordClone.value = sitePassword.value;
				sitePasswordClone.type  = ( this.checked ? 'text' : 'password' );
				sitePassword.parentNode.replaceChild( sitePasswordClone, sitePassword );
			}
		}
	}
}



function initKeyNav()
{
	document.onkeydown = function( evt ) {
		var evt = evt || window.event;
		var tg  = getEventTarget( evt );
		if ( tg.nodeName == 'INPUT' || tg.nodeName == 'TEXTAREA' ) {
			return;
		}
		
		try {
			switch( evt.keyCode ) {
				case 38:
					keyUp();
					break;
				case 40:
					keyDown();
					break;
				case 37:
					keyLeft();
					break;
				case 39:
					keyRight();
					break;
			}
			
			// Set cookie to hide text
			var objDate  = new Date();
			var lifespan = 1000 * 60 * 60; // 1 hour
			objDate.setTime( objDate.getTime() + lifespan );
			var expDate = objDate.toGMTString();
			document.cookie = 'keyboard=1; expires=' + expDate + '; path=/';			
		}
		catch( e ) {
			// No keyboard functions defined for current page
		}
		
	}
}



function initFormatOptions()
{
	var links = document.getElementsByTagName( 'A' );
	var popupLink;
	
	for ( var i = 0; i < links.length; i++ ) {
		if ( links[i].className.indexOf('formatOptions') == -1 ) {
			continue;
		}
		
		links[i].onclick = function() {
			var url = this.getAttribute( 'href' );
			openPopup( url );
			return false;
		}
	}
	
}



function checkUpload()
{
	if ( !document.forms['frmUpload'] ) {
		return;
	}
	
	document.forms['frmUpload'].onsubmit = function() {
		var uploadImg = document.getElementById( 'uploadImg' );
		if ( uploadImg.value.length > 1 ) {
			document.getElementById( 'btnSubmit' ).disabled = true;
			return true;
		}
		var msg = translate( 'Kies eerst een bestand om te uploaden' );
		alert( msg );
		return false;
	}
}



function initUploadForm()
{
	var frm               = document.forms[0];
	var siteWatermarkType = frm.siteWatermarkType;
	
	if ( typeof siteWatermarkType == 'undefined' ) {
		return;
	}
	
	toggleWatermarkText = function() {
		var trs = frm.getElementsByTagName( 'TR' );
		for ( var i = 0; i < trs.length; i++ ) {
			if ( trs[i].className == 'siteWatermarkType' ) {
				if ( siteWatermarkType[0].checked ) {
					// Geen watermerk
					trs[i + 1].style.display = 'none';
				}
				else {
					// Wel watermerk
					try {
						trs[i + 1].style.display = 'table-row';
					}
					catch( e ) {
						trs[i + 1].style.display = 'block'; // IE
					}
				}
			}
		}
	}
	
	siteWatermarkType[0].onclick = siteWatermarkType[1].onclick = toggleWatermarkText;
	if ( typeof siteWatermarkType[2] != 'undefined' ) {
		siteWatermarkType[2].onclick = toggleWatermarkText;
	}
	toggleWatermarkText();
}



function openPopup( url )
{
	popupWidth  = 540;
	popupHeight = 300;
	windowWidth = document.body.offsetWidth;
	windowLeft  = ( windowWidth - 570 ) / 2;
	window.open( url + "", "", "toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=1,resizable=1,copyhistory=yes,width=" + popupWidth + ",height=" + popupHeight + ",left=" + windowLeft + ",top=300" )
}



function getEventTarget( event ) {
    var targetElement = null;

    if ( typeof event.target != 'undefined' ) {
        targetElement = event.target;
    }
	else {
        targetElement = event.srcElement;
    }

    while ( targetElement.nodeType == 3 && targetElement.parentNode != null ) {
        targetElement = targetElement.parentNode;
    }

    return targetElement;
}