jQuery(document).ready(function(){

	// Die Basis der Formularvalidierung - die Validierung selber wird inline nach dem Formular eingebettet. 


	jQuery.fn.simpleoutput = function(warntxt){
		jQuery(this).append("<span class='fehler'>"+warntxt+"</span>");	
	}



        if(jQuery(".yform").length){

		
                // add warntext
                jQuery.fn.myoutput = function(warningtext) {
                    if(!jQuery(this).hasClass('warned')){
                        jQuery(this).addClass('warned');
                        var thisId = jQuery(this).attr('id');
                        jQuery(this).parent().append("<span class='fehler "+thisId+"'>"+warningtext+"</span>");
						jQuery(this).parent("div").addClass("fehlercnt");
                    }
                }
                // remove warntext
                jQuery.fn.myremove = function() {
                    if(jQuery(this).hasClass('warned')){
                        var thisId = jQuery(this).attr('id');
                        jQuery(this).removeClass('warned');
                        jQuery(this).siblings('div').filter('.'+thisId).remove();
                    }
                }
              // validate email. for blur-validation the regex-function can be used
               jQuery.fn.validateEmail = function(){
                    var a = jQuery(this).val().toLowerCase();
                    //var dummymail = jQuery(this).attr('title').toLowerCase();
                    var warningtext_email = "bitte korrekt ausfüllen";
                    var filter = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)jQuery/;
                    // if the dummytext hasn't changed or thre is no value at all
                    //if (a == dummymail || !a || !filter.test(a)) {
                    if (!a || !filter.test(a)) {
                        jQuery(this).myoutput(warningtext_email);
                    }
                    else{ //if it's NOT valid
                        jQuery(this).myremove();
                    }
                }
             // validate input-fields for numbers without length- or format-limitation
                 jQuery.fn.validateNumber = function(warn) {
                    var valnumber = jQuery(this).val();
                    var warningtext = warn ? warn : "Bitte füllen Sie dieses Formularfeld aus.";
                    if(isNaN(valnumber) || !valnumber) {
                        jQuery(this).myoutput(warningtext);
                    }
                    else{
                        jQuery(this).myremove();
                    }
                }
                 // validate input-fields for numbers, amount is length of number
                 jQuery.fn.validateNumberAmount = function(warn, amount) {
                    var val = jQuery(this).val();
                    var warningtext = warn ? warn : "Bitte füllen Sie dieses Formularfeld aus.";
                    if(isNaN(val) || val.length != amount ) {
                         jQuery(this).myoutput(warn);
                    }
                    else if (!isNaN(val) && val.length == amount) {
                        jQuery(this).myremove();
                    }
                }
                // validate text-inputfields
                jQuery.fn.validateText = function(warn) {
                    var warningtext = warn ? warn : "Bitte füllen Sie dieses Formularfeld aus.";
                    if (jQuery.trim(jQuery(this).val())=='') {
                       jQuery(this).myoutput(warningtext);
                    } else if (jQuery.trim(jQuery(this).val())!='') {
                       jQuery(this).myremove();
                    }
                }

                // validate selects
                jQuery.fn.validateSelect = function(warn) {
                    var warningtext = warn ? warn : "Bitte füllen Sie dieses Formularfeld aus.";
					if (jQuery(this).val("0")){
						jQuery(this).addClass("select-fehler warned").parent("div").addClass("fehlercnt");
					}
                }

                // validate with a regular expression
                jQuery.fn.validateRegex = function(warn, regex) {
                    var warningtext = warn ? warn : "Bitte füllen Sie dieses Formularfeld aus.";
                    if (!jQuery(this).val() || !regex.test(jQuery(this).val())) {
                           jQuery(this).myoutput(warn);
                    } else if (jQuery(this).val() && regex.test(jQuery(this).val())) {
                        jQuery(this).myremove();
                    }
                }
                // regular expressions
                var dateRegex = /^([0][1-9]|[1-2][0-9]|[3][0-1])\.([0][1-9]|[1][0-2])\.(19|20)[0-9]{2}/;
                var emailRegex = /^[a-zA-Z0-9]+[a-zA-Z0-9_.-]+[a-zA-Z0-9_-]+@[a-zA-Z0-9]+[a-zA-Z0-9.-]+[a-zA-Z0-9]+.[a-z]{2,4}jQuery/;
                var emailRegex2 = /^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)jQuery/;   // alternative
                var nr2Regex = /^[0-9]{2}jQuery/; //zwei Ziffern
                var nr3Regex = /^[0-9]{3}jQuery/; //drei Ziffern
                var nr5Regex = /^[0-9]{5}jQuery/; //fünf Ziffern
                var nr7Regex = /^[0-9]{7}jQuery/; //sieben Ziffern
                var nr8Regex = /^[0-9]{8}jQuery/; //acht Ziffern
                var telephoneRegex = /^([0][0-9]{2,})(\.|-|\/{0,1})([0-9]{3,})jQuery/;
                var gaRegex = /^([1-9]{1})([0-9]{0,5})jQuery/;

               }

 
});




