	// functions for posting a comment
    function openCommentBox()
    {	var element = document.getElementById("commentBox");
    	if (!element) {
    		return;
    	}
    	closeRecommendationBox();
        element.style.display = "block";

        element = document.getElementById("commentBoxController");
        if (!element) {
    		return;
    	}
        element.className = "openedCommentBox";
    }

    function closeCommentBox() {
        var element = document.getElementById("commentBox");
        if (!element)
    		return;
        element.style.display = "none";

		if (!element)
    		return;
        element = document.getElementById("commentBoxController");
        element.className = "closedCommentBox";
    }

    function toggleCommentBox() {
        clearCommentMessages();
        
        var element = document.getElementById("commentBox");
        if (!element)
    		return;
        if (element.style.display == "none") 
        	openCommentBox();
        else
        	closeCommentBox();
    }

    function checkMessages() {
        try
        {
        	clearCommentMessages();

	        if (locationEndsWith("#kommentarSuccess")) {
	            document.getElementById("kommentarSuccessMessage").style.display = "block";
	        }
	        else if (locationEndsWith("#kommentarError")) {
	            document.getElementById("kommentarErrorMessage").style.display = "block";
	            openCommentBox();
	            restoreCommentForm();
	        }
	        else if (locationEndsWith("#kommentarCodeExpired")) {
	            document.getElementById("kommentarCodeExpiredMessage").style.display = "block";
	            openCommentBox();
	            restoreCommentForm();
	        }
	        else if (locationEndsWith("#kommentarCodeFalsch")) {
	            document.getElementById("kommentarCodeFalschMessage").style.display = "block";
	            openCommentBox();
	            restoreCommentForm();
	        }
	        else if (locationEndsWith("#kommentarAbgeben")) {
	            openCommentBox();
	        }
	    }
        catch(e) {}
    }



    function checkCommentForm() {
        var result = true;

        clearCommentMessages();
			
		try
		{
			if (document.getElementById("commentBody").value == "") {
	            document.getElementById("comment_message_required").style.display = "block";
	            document.getElementById("commentBodySpan").className = "formFieldDescription error";
	            result = false;
	        } else document.cookie = "commentBody=" + encodeURI(document.getElementById("commentBody").value);
	
	        if (document.getElementById("commentName").value == "") {
	            document.getElementById("comment_name_required").style.display = "block";
	            document.getElementById("commentNameSpan").className = "formFieldDescription error";
	            result = false;
	        } else document.cookie = "commentName=" + encodeURI(document.getElementById("commentName").value);
	
	        if (document.getElementById("commentEmail").value == "") {
	            document.getElementById("comment_email_required").style.display = "block";
	            document.getElementById("commentEmailSpan").className = "formFieldDescription error";
	            result = false;
	        }
	        else if (!checkEmail(document.getElementById("commentEmail").value)) {
	            document.getElementById("comment_email_invalid").style.display = "block";
	            document.getElementById("commentEmailSpan").className = "formFieldDescription error";
	            result = false;
	        } else document.cookie = "commentEmail=" + encodeURI(document.getElementById("commentEmail").value);
	
	        if (document.getElementById("commentCaptcha").value == "") {
	            document.getElementById("comment_captcha_required").style.display = "block";
	            document.getElementById("commentCaptchaSpan").className = "formFieldDescription error";
	            result = false;
	        }
		}
        catch(e) {}
        
        return result;
    }

    function restoreCommentForm() {
        try
        {	document.getElementById("commentBody").value = readCommentCookie("commentBody");
        	document.getElementById("commentName").value = readCommentCookie("commentName");
        	document.getElementById("commentEmail").value = readCommentCookie("commentEmail");
        }
        catch(e) {}
    }

    function clearCommentMessages() {
        try
        {
            document.getElementById("kommentarSuccessMessage").style.display = "none";
            document.getElementById("kommentarErrorMessage").style.display = "none";
            document.getElementById("kommentarCodeExpiredMessage").style.display = "none";
	        document.getElementById("kommentarCodeFalschMessage").style.display = "none";
            document.getElementById("comment_message_required").style.display = "none";
            document.getElementById("comment_name_required").style.display = "none";
            document.getElementById("comment_email_required").style.display = "none";
            document.getElementById("comment_captcha_required").style.display = "none";

	        document.getElementById("commentBodySpan").className = "formFieldDescription";
	        document.getElementById("commentNameSpan").className = "formFieldDescription";
	        document.getElementById("commentEmailSpan").className = "formFieldDescription";
	        document.getElementById("commentCaptchaSpan").className = "formFieldDescription";
	   	}
        catch(e) {}
    }

    function readCommentCookie(cookieName) {
        try
        {	var nameEq = cookieName + "=";
	        var cookieArray = document.cookie.split(";");
	
	        for (var i = 0; i < cookieArray.length; i++) {
	            var cookie = cookieArray[i];
	            while (cookie.charAt(0) == " ") cookie = cookie.substr(1);
	            if (cookie.indexOf(nameEq) == 0) {
	                return decodeURI(cookie.substr(nameEq.length));
	            }
	        }
	    }
        catch(e) {}

        return "";
    }


    
    // functions for sending recommendations
    
    var requiredFields = new Array(
    	new Array('comment',
    			  false),
    	new Array('recipientName',
    	          false),
    	new Array('recipientEmail',
    	          true),
    	new Array('senderName',
    			  false),
    	new Array('senderEmail',
    	          true),
    	new Array('captcha',
    	          false)
    	);


    function checkRecommendationForm() {
    	var result = true;
    	
    	try {
	        clearRecommendationMessages();
	
	        for (var i = 0; i < requiredFields.length; i++) {
	        	currentField = requiredFields[i][0];
	        	if (document.getElementById("recommendation_"+requiredFields[i][0]).value == "") {
		            document.getElementById("recommendation_"+requiredFields[i][0]+"_message").style.display = "block";
		            document.getElementById("recommendation_"+requiredFields[i][0]+"_span").className = "formFieldDescription error";
		            result = false;
	        	} else if (requiredFields[i][1] && !checkEmail(document.getElementById("recommendation_"+requiredFields[i][0]).value) ) {
		            document.getElementById("recommendation_"+requiredFields[i][0]+"_message_invalid").style.display = "block";
		            document.getElementById("recommendation_"+requiredFields[i][0]+"_span").className = "formFieldDescription error";
		            result = false;
	        	} else if (requiredFields[i][0] != "captcha") { 
	        		document.cookie = "recommendation_"+requiredFields[i][0]+"=" + encodeURI(document.getElementById("recommendation_"+requiredFields[i][0]).value);
	        	}
	        }
	
	        return result;
	    } catch (e) {
	    	alert(e);
	    	return false;
	    }
    }

    function restoreRecommendationForm() {
    	try
    	{
    		for (var i = 0; i < requiredFields.length; i++) {
	    		if (requiredFields[i][0] != "captcha") { 
    				document.getElementById("recommendation_"+requiredFields[i][0]).value = readCommentCookie("recommendation_"+requiredFields[i][0]);
    			}
    		}
       	}
        catch(e) {
        	alert(e);
        }
    }

    function clearRecommendationMessages() {
    	try {
	        for (var i = 0; i < requiredFields.length; i++) {
	            document.getElementById("recommendation_"+requiredFields[i][0]+"_message").style.display  = "none";
	            if (requiredFields[i][1]) {
		            document.getElementById("recommendation_"+requiredFields[i][0]+"_message_invalid").style.display  = "none";
	            }
	            document.getElementById("recommendation_"+requiredFields[i][0]+"_span").className = "formFieldDescription";
	        }
	        
	        var subElements = document.getElementById("recommendationServerErrors").getElementsByTagName("div");
	        for (var i = 0; i < subElements.length; i++) {
	        	if (subElements[i].style.display == 'block') {
					restoreForm = true;        	
		        	subElements[i].style.display = 'none';
	        	}
	        }
		} catch (e) {
			alert(e);
		}        
    }

 
    function checkRecommendationMessages() {
        try
        {
		     clearRecommendationMessages();
	 		 if (locationEndsWith("versenden")) {
				openRecommendationBox();
			 } else if (locationEndsWith("recommendationCodeError")) {
				openRecommendationBox();
				restoreRecommendationForm();
				setVisible("recommendationCodeError_message");
			 } else if (locationEndsWith("recommendationMailError")) {
				openRecommendationBox();
				restoreRecommendationForm();
				setVisible("recommendationMailError_message");
 			 } else if (locationEndsWith("recommendationCodeExpired")) {
				openRecommendationBox();
				restoreRecommendationForm();
 				setVisible("recommendationCodeExpired_message");
 			 } else if (locationEndsWith("recommendationCodeFalsch")) {
				openRecommendationBox();
				restoreRecommendationForm();
 				setVisible("recommendationCodeFalsch_message");
 			 }
	   	}
        catch(e) {}
    }

    function openRecommendationBox() {
        var element = document.getElementById("recommendationBox");
        if (element) {
        	element.style.display = "block";
        	closeCommentBox();
        }
    }

    function closeRecommendationBox() {
        var element = document.getElementById("recommendationBox");
        if (element) {
        	element.style.display = "none";
        }
    }

    function setVisible(id) {
        var element = document.getElementById(id);
        if (element) {
        	element.style.display = "block";
        }
    }
    
    function checkLetterToEditorForm()
    {	try
    	{	var errorDiv = document.getElementById("contactErrors");
    		var result = true;
    		var errorText = "";
    		var standardClassName = "formFieldDescription";	
    		var errorClassName = standardClassName + " error";
			
    		var recipientElement = document.getElementById("recommendation_recipient");
    			
    		var commentElement = document.getElementById("recommendation_comment");
    		var commentElementTitle = document.getElementById("recommendation_comment_span");
    		
    		var nameElement = document.getElementById("recommendation_senderName");
    		var nameElementTitle = document.getElementById("recommendation_senderName_span");
    		
    		var mailElement = document.getElementById("recommendation_senderEmail");
    		var mailElementTitle = document.getElementById("recommendation_senderEmail_span");
    		
    		var captchaElement = document.getElementById("recommendation_captcha");
    		var captchaElementTitle = document.getElementById("recommendation_captcha_span");
    		
    		// reset all errors
    		errorDiv.style.display = "none";
    		commentElementTitle.className = standardClassName;
    		nameElementTitle.className = standardClassName;
    		mailElementTitle.className = standardClassName;
    		captchaElementTitle.className = standardClassName;

			// recipient ?
    		if (recipientElement != null && recipientElement.value == "ea_default")
    		{	errorText += "<div>Bitte w&auml;hlen Sie den Empf&auml;nger aus.</div>";
    		}
			
    		// message ?
    		if (commentElement.value == "")
    		{	errorText += "<div>Das Feld 'Nachricht' muss ausgef&uuml;llt werden.</div>";
    			commentElementTitle.className = errorClassName;
    		}
    		// name ?
    		if (nameElement.value == "")
    		{	errorText += "<div>Das Feld 'Ihr Name' muss ausgef&uuml;llt werden.</div>";
    			nameElementTitle.className = errorClassName;
    		}
    		// email address ?
    		if (mailElement.value == "")
    		{	errorText += "<div>Das Feld 'Ihre Email' muss ausgef&uuml;llt werden.</div>";
    			mailElementTitle.className = errorClassName;
    		}
    		else
    		{	if (!isValidEmail(mailElement.value))
				{	errorText += "<div>Das Feld 'Ihre Email' enth&auml;lt keine g&uuml;ltige Email-Anschrift.</div>";
					mailElementTitle.className = errorClassName;
    			}
    		}
    		// captcha ?
    		if (captchaElement.value == "")
    		{	errorText += "<div>Das Feld 'Code' muss ausgef&uuml;llt werden.</div>";
    			captchaElementTitle.className = errorClassName;
    		}
    		
    		if (errorText != "")
    		{	errorDiv.style.display = "block";
    			errorDiv.innerHTML = errorText;
    			result = false;
    		}	
	        return result;
	    }
	    catch(e)
	    {	//alert(e);
	    	return false;
	    }
    }