(function($) {
	$("head").append("<style type='text/css'>.jquery-message{font:normal 20px / 50px Helvetica, Arial, Sans-Serif;letter-spacing:-1px;position:absolute;top:250px;left:25%;width:50%;color:#FFF;background-color:#000;text-align:center;display:none;opacity:0;z-index:100000}.jquery-message .round{border-left:solid 2px #FFF;border-right:solid 2px #FFF;font-size:1px;height:2px}.jquery-message p{display:inline;padding:.3em}.jquery-message a{display:none}</style>");
	var helper,
		visible,
		timeout1,
		timeout2;
	
	$.fn.message = function(message) {
		message = $.trim(message || this.text());
		if (!message) {
			return;
		}
		clearTimeout(timeout1);
		clearTimeout(timeout2);
		
		initHelper();
		helper.find("p").html(message);
		helper.show().animate({ opacity: $.message.defaults.opacity}, $.message.defaults.fadeInDuration);
		visible = true;
		active = false;
		timeout1 = setTimeout(function() {
			visible = false;
		}, $.message.defaults.minDuration + $.message.defaults.displayDurationPerCharacter * Math.sqrt(message.length));
		timeout2 = setTimeout(fadeOutHelper, $.message.defaults.totalTimeout);
	};
	
	function initHelper() {
		if (!helper) {
			helper = $($.message.defaults.template).appendTo(document.body);
			$(window).bind("mousemove click keypress", fadeOutHelper);
		}
	}
	
	function fadeOutHelper() {
		if (helper.is(":visible") && !helper.is(":animated") && !visible) {
			helper.animate({ opacity: 0 }, $.message.defaults.fadeOutDuration, function() { $(this).hide() })
		}
	}
	
	$.message = {};
	$.message.defaults = {
		opacity: 0.8,
		fadeOutDuration: 500,
		fadeInDuration: 200,
		displayDurationPerCharacter: 125,
		minDuration: 2500,
		totalTimeout: 6000,
		template: '<div class="jquery-message"><div class="round"></div><p></p><div class="round"></div></div>'
	}

	
	// CSS Klassen für Fehler ############################################################
	/*
	 * .errField{border: 1px solid red !important;}
	 * .errFieldtext{color:red !important;display:none}
	 */
	
	// JS in der Seite einbinden #########################################################
	/*
	 * Einbinden über: <script src="js/formValid.js" type="text/javascript"></script>
	 */
	
    // ###################################################################################
    // Kontaktformular Start
    // ###################################################################################

    function fieldWatch(el, valid, errtext){
        if (valid) {
            $('#' + el).removeClass('errField');
        }
        else {
            $('#' + el).addClass('errField');
            $('#' + el).after('<div id="err_' + el + '" class="errFieldtext">' + errtext + '</div>');
            $('.errFieldtext').fadeIn(1500);
        }
    }
	
    function isValid(){
        $('.errFieldtext').remove();
        var msg = true;
		
		// ::: E-Mail ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        if ($('#eMail').val() != "") {
            fieldWatch('eMail', true, '');
            if ($('#eMail').val().indexOf("@") < 1 || $('#eMail').val().indexOf(".") < 1) {
                fieldWatch('eMail', false, 'Die eMail-Adresse ist syntaktisch nicht korrekt');
                msg = false;
            }
            else {
                fieldWatch('eMail', true, '');
            }
        }
        else {
            fieldWatch('eMail', false, 'Please enter your email address');
            msg = false;
        }
		
        // ::: Name ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        if ($('#Name').val() == "") {
            fieldWatch('Name', false, 'Please enter your name');
            msg = false;
        }
        else {
            fieldWatch('Name', true, '');
        }
        
		// ::: Telefon :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        if ($('#telefon').val() == "") {
            fieldWatch('telefon', false, 'Please enter your phone number');
            msg = false;
        }
        else {
            fieldWatch('telefon', true, '');
        }
		
		// ::: Nachricht :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        if ($('#nachricht').val() == "") {
            fieldWatch('nachricht', false, 'Please enter a message');
            msg = false;
        }
        else {
            fieldWatch('nachricht', true, '');
        }
        
		// ::: CaptchaCode :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
        if ($('#captcha_code').val() == "") {
            fieldWatch('captcha_code', false, 'Please enter the security code');
            msg = false;
        }
        else {
            fieldWatch('captcha_code', true, '');
        }
        
		// ::: Wenn alles valide ist ::::::::::::::::::::::::::::::::::::::::::::::::::::
        if (msg) {
            return true;
        }
		
        // ::: Wenn Fehler vorkommen ::::::::::::::::::::::::::::::::::::::::::::::::::::
		//$().message("Hello world, on document ready!");
		//$('.jquery-message').css("top",400).css("width",300).css("margin","auto auto");
        return false;
    }
    
	// ::: addEventListener(submit) :::::::::::::::::::::::::::::::::::::::::::::::::::::
	// Submit Event abfangen und an isValid weitergeben
	// Das Formular muss ein ID haben, diese wird hier eingetragen
    $('#kontaktFormular').submit(function(){
        return isValid();
    });
	
    // ###################################################################################
    // Kontaktformular Ende
    // ###################################################################################
})(jQuery);

