function photoslide(id, url, label) {
    if (document.getElementById('lblPhotoslide')) {
        document.getElementById('lblPhotoslide').innerHTML = label;
    }
    if (document.getElementById('imgPhotoslide')) {
        document.getElementById('imgPhotoslide').src = url;
    }
    if (document.getElementById('aPhotoslide')) {
        document.getElementById('aPhotoslide').href = '/nieuws/' + id;
    }
}

EventManager.add(window, 'load', function (e) {

    var wedstrijdschema = document.getElementById('wedstrijdschema');
    var wedstrijdschemaToggle = document.getElementById('wedstrijdschemaToggle');
    if (wedstrijdschemaToggle && wedstrijdschema) {
	    EventManager.add(wedstrijdschemaToggle, 'click', function (e) {

	        if (this.innerHTML == 'uitklappen') {
	            this.innerHTML = 'inklappen';
	            wedstrijdschema.style.display = 'block';
	        } else {
	            this.innerHTML = 'uitklappen';
	            wedstrijdschema.style.display = 'none';
	        }
	    });
    }
    
    var mnuWk = document.getElementById('mnuWk');
    if (mnuWk) {
    	EventManager.add(mnuWk, 'mouseover', function (e) {
    		document.getElementById('mnuWkContent').style.display = 'block';
    	});
    	EventManager.add(mnuWk, 'mouseout', function (e) {
    		document.getElementById('mnuWkContent').style.display = 'none';
    	});
    }
    
    var dds = document.getElementsByTagName('dd');
    for (var i = 0; i < dds.length; i++) {
    	var dd = dds[i];
    	if (dd.firstChild.className.match(/inactive/)) {
    		dd.firstChild.removeAttribute('href');
    	}
    }
    

    var btnLogin = document.getElementById('loginButton');
    if (btnLogin) {
        EventManager.add(btnLogin, 'click', function (e) {
                var response = md5(
                    document.getElementById('mainChallenge').value +
                    document.getElementById('mainUsername').value +
                    md5(document.getElementById('mainPassword').value)
                );
                
                UserService.authenticate(
                    document.getElementById('mainUsername').value,
                    response,
                    function (xhr) {
                        var p = document.getElementById('loginMessage');
        
                        var response = XhrResponseParser.parse(xhr.responseXML);
                        
                        if (response.isFailure()) {
        
                            document.getElementById('mainChallenge').value = response.getChallenge();
                            
                            
                            p.innerHTML = 'De inloggegevens zijn niet geldig.';
                            p.className = 'error message';
                            p.style.display = 'block';
                        } else {
                        	//alert(response.isAdmin() ? 'Je bent admin.' : 'Je bent mijn oma');
                            p.innerHTML = 'Je bent succesvol ingelogd.';
                            p.className = 'message';
                            p.style.display = 'block';
                            
                            if(response.isAdmin()) {
                            	document.getElementById('menuBeheer').style.display = 'block';
                            }
                            
                            document.getElementById('loginBox').style.display = 'none';
                            document.getElementById('greeting').innerHTML += document.getElementById('mainUsername').value;
                            document.getElementById('account_avatar').src = '/upload/avatars/' + response.getUserId();
                            document.getElementById('userBox').style.display = 'block';
                            
                            var ac = document.getElementById('article_challenge');
                            if (ac) {
                            	ac.parentNode.removeChild(ac);
                            }
                            
                            if(document.getElementById('article_username_row') != null) {
                            	document.getElementById('article_username_row').style.display = 'none';
                            	document.getElementById('article_password_row').style.display = 'none';
                            	document.getElementById('message').innerHTML = 'Houd je bij het plaatsen van een reactie aan de <a href="/disclaimer">voorwaarden</a>.';
                            }
                        }
                    }
                );
        }, false);
    }
    
    var btnCommentAdd = document.getElementById('comment_add');
    if (btnCommentAdd) {
        EventManager.add(btnCommentAdd, 'click', function (e) {
            if (document.getElementById('article_content') && document.getElementById('article_content').value == '') {
                var p = document.getElementById('message');
                p.className = 'error message';
                p.innerHTML = 'Je reactie is leeg. Je moet wel iets zeggen...';
                return;
            }
            
            if (document.getElementById('article_challenge') && document.getElementById('username') && document.getElementById('username').disabled == false) {
    	        var response = md5(
    	            document.getElementById('article_challenge').value +
    	            document.getElementById('username').value +
    	            md5(document.getElementById('article_password').value)
    	        );
    	        
    	        UserService.authenticate(
    	            document.getElementById('username').value,
    	            response,
    	            function (xhr) {
    	                var p = document.getElementById('message');
    	
    		            var response = XhrResponseParser.parse(xhr.responseXML);
    
    	                if (response.isFailure()) {
    	                    document.getElementById('article_challenge').value = response.getChallenge();
    	                    
    	                    p.innerHTML = 'De inloggegevens zijn niet geldig. Je reactie is nog niet geplaatst.';
    	                    p.className = 'error message';
    	                } else {
    	                    p.innerHTML = 'Je bent succesvol ingelogd.';
    	                    p.className = 'message';
    	                    
    	                    var txtChallenge = document.getElementById('article_challenge');
    	                    txtChallenge.parentNode.removeChild(txtChallenge);
    	                    
                            if(response.isAdmin()) {
                            	document.getElementById('menuBeheer').style.display = 'block';
                            }
                            
                            document.getElementById('loginBox').style.display = 'none';
    	                    document.getElementById('greeting').innerHTML += document.getElementById('username').value;
    	                    document.getElementById('userBox').style.display = 'block';
    	                    
    	                    document.getElementById('article_username_row').style.display = 'none';
    	                    document.getElementById('article_password_row').style.display = 'none';
    	                    
    	                    
                            var ac = document.getElementById('article_challenge');
                            if (ac) {
                            	ac.parentNode.removeChild(ac);
                            }
    	                    
    	                    var newsItemId = document.getElementById('newsitem_id').value;
    	                    
    			            NewsItemService.addComment(
    			               new NewsItem(newsItemId),
    			               null,
    			               new Comment(document.getElementById('article_content').value),
    			               NewsItemResponseHandler.handleAddComment
    			            );
    	                }
    	            }
    	        );
    	    } else {
    			var newsItemId = document.getElementById('newsitem_id').value;
     
    	        NewsItemService.addComment(
    	           new NewsItem(newsItemId),
    	           null,
    	           new Comment(document.getElementById('article_content').value),
    	           NewsItemResponseHandler.handleAddComment
    	        );
    	    }
    
            return false;
        }, false);
    }


    var pErrorMessage = document.getElementById('message');
    if (pErrorMessage) {
        pErrorMessage.originalHTML = pErrorMessage.innerHTML;
    }

    txtUsername = document.getElementById('username');

    if (txtUsername) {
        
        EventManager.add(txtUsername, 'blur', function (e) {

            if (this.value == '') {
                return;
            }
            
		    var xhr = new XMLHttpRequest();
		
		    var url = '/index.php?module=User&action=VerifyUsernameExists&username=' + txtUsername.value;

		    var params = '';
		    
		    xhr.open("GET", url, true);
		   
		    xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		    xhr.setRequestHeader("Content-length", params.length);
		    xhr.setRequestHeader("Connection", "close");
		
		    xhr.onreadystatechange = function() {
		        if (xhr.readyState == 4 && xhr.status == 200) {

                    var p = document.getElementById('message');

		            var response = XhrResponseParser.parse(xhr.responseXML);
		            
		            if (response.isFailure()) {
		            	
                        p.innerHTML = 'De opgegeven gebruikersnaam bestaat niet.';
                        p.className = 'error message';
		            } else {
			            p.innerHTML = p.originalHTML;
			            p.className = 'message';
		            }

		        }
		    }
		    
            xhr.send(params);
		    
        }, false);
        
        EventManager.add(txtUsername, 'focus', function (e) {
            var p = document.getElementById('message');
            p.className = 'message';
            p.innerHTML = p.originalHTML;
        }, false);
        
    }
    

    txtRegisterUsername = document.getElementById('register_username');

    if (txtRegisterUsername) {
        
        EventManager.add(txtRegisterUsername, 'blur', function (e) {

            if (this.value == '') {
                return;
            }
            
            var xhr = new XMLHttpRequest();
        
            var url = '/index.php?module=User&action=VerifyUsernameExists&username=' + txtRegisterUsername.value;

            var params = '';
            
            xhr.open("GET", url, true);
           
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.setRequestHeader("Content-length", params.length);
            xhr.setRequestHeader("Connection", "close");
        
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {

                    var p = document.getElementById('message');

                    var response = XhrResponseParser.parse(xhr.responseXML);
                    
                    if (response.isFailure()) {
                        p.innerHTML = p.originalHTML;
                        p.className = 'message';                        
                    } else {
                        p.innerHTML = 'De opgegeven gebruikersnaam bestaat al.';
                        p.className = 'error message';
                    }

                }
            }
            
            xhr.send(params);
            
        }, false);
        
        EventManager.add(txtRegisterUsername, 'focus', function (e) {
            var p = document.getElementById('message');
            p.className = 'message';
            p.innerHTML = p.originalHTML;
        }, false);
        
    }
    

    txtRegisterEmail = document.getElementById('register_email');

    if (txtRegisterEmail) {
        
        EventManager.add(txtRegisterEmail, 'blur', function (e) {

            if (this.value == '') {
                return;
            }
            
            var xhr = new XMLHttpRequest();
        
            var url = '/index.php?module=User&action=VerifyEmailExists&email=' + txtRegisterEmail.value;

            var params = '';
            
            xhr.open("GET", url, true);
           
            xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
            xhr.setRequestHeader("Content-length", params.length);
            xhr.setRequestHeader("Connection", "close");
        
            xhr.onreadystatechange = function() {
                if (xhr.readyState == 4 && xhr.status == 200) {

                    var p = document.getElementById('message');

                    var response = XhrResponseParser.parse(xhr.responseXML);
                    
                    if (response.isFailure()) {
                        p.innerHTML = p.originalHTML;
                        p.className = 'message';
                    } else {
                        p.innerHTML = 'Er bestaat al een account met het opgegeven e-mailadres.';
                        p.className = 'error message';
                    }

                }
            }
            
            xhr.send(params);
            
        }, false);
        
        EventManager.add(txtUsername, 'focus', function (e) {
            var p = document.getElementById('message');
            p.className = 'message';
            p.innerHTML = p.originalHTML;
        }, false);
        
    }
}, false);
