function show_form_error(elem, text){

    id_ext = elem.id;

    if(document.getElementById('form_error_' + id_ext)){
        document.getElementById('form_error_' + id_ext).innerHTML = text;
        $('#form_error_' + id_ext).show();
    } else {
        if(text){
            var div = document.createElement('div');
            div.className = 'show_form_error';
            div.id = 'form_error_' + id_ext;
            div.innerHTML = text;

            div.style.display = 'none';
            elem.parentNode.appendChild(div);

            $('#form_error_' + id_ext).show('normal');
        }
        $(elem).addClass('error');
    }
 }

 function hide_form_error(elem){

    id_ext = elem.id;

	$(elem).removeClass('error');
    if(document.getElementById('form_error_' + id_ext)){
        $('#form_error_' + id_ext).hide('normal');
    }
 }

function checkContact(form){

    var error = false;
    var hide_error = new Array();

	if(form.nachname.value == ''){
        show_form_error(form.nachname, mlc_error_lastname);
        error = true;
    } else {
        hide_error[hide_error.length] = form.nachname;
    }

    if(form.vorname.value == ''){
        show_form_error(form.vorname, mlc_error_firstname);
        error = true;
    } else {
        hide_error[hide_error.length] = form.vorname;
    }

    if(form.strasse.value == ''){
        show_form_error(form.strasse, mlc_error_street);
        error = true;
    } else {
        hide_error[hide_error.length] = form.strasse;
    }

    if(form.plz.value == '' || form.ort.value == ''){
        show_form_error(form.ort, mlc_error_zip);
        form.plz.className = 'error';
        error = true;
    } else {
        hide_error[hide_error.length] = form.ort;
        form.plz.className = '';
    }

    if(form.fon.value == ''){
        show_form_error(form.fon, mlc_error_phone_empty);
        error = true;
    } else {
        hide_error[hide_error.length] = form.fon;
    }


    var RegExpr = /^[\w\d-_]+(\.[_\w\d-]+)*@[\w\d-]+(\.[_\w\d-]+)*\.([\w]{2,5})$/i;
    if((!RegExpr.exec(form.email.value) || form.email.value == '') || (!RegExpr.exec(form.email2.value) || form.email2.value == '') ){
        show_form_error(form.email, mlc_error_email);
        error = true;
    }else{
		hide_error[hide_error.length] = form.email;
    }

    if(form.nachricht.value == ''){
        show_form_error(form.nachricht, mlc_error_message);
        error = true;
    } else {
        hide_error[hide_error.length] = form.nachricht;
    }

    if(error){
        var i;
        for(i = 0; i < hide_error.length; i++){
            hide_form_error(hide_error[i]);
        }
    }

    return !error;
}

var username_taken = true;
function checkRegisterUsername(){
	var url = check_url + '?username=' + encodeURIComponent(this.value);

	jQuery.get(url, function(data)
					{
						if(data == 'false'){
							$('#name').addClass('valid');
							hide_form_error(document.getElementById('name'));
                            username_taken = false;
						} else {
							$('#name').addClass('not_valid');
							show_form_error(document.getElementById('name'), mlc_username_taken);
                            username_taken = true;
						}

					}
	);

}

function checkRegisterPassword(){

    	if($('#pass1').val() != '' && this.value == ''){
    		show_form_error(this, mlc_repeat_pass);
        } else if(this.value != '' && $('#pass1').val() == ''){
    		show_form_error(document.getElementById('pass1'), mlc_pass1);
        } else if($('#pass1').val() != '' && $('#pass2').val() != '' && $('#pass1').val() == $('#pass2').val()){
        	hide_form_error(document.getElementById('pass1'));
        	hide_form_error(document.getElementById('pass2'));
        	$('#pass1').addClass('valid');
        } else {
	        if($('#pass1').val() != '' && $('#pass2').val() != ''){
            	hide_form_error(document.getElementById('pass1'));
            	show_form_error(document.getElementById('pass2'), mlc_pass_invald);
        	}
    	}
}

var email_valid = false;
function checkRegisterEMail(){
	if(this.value != ''){
		if(this.value.match(email_regex)){
			$(this).addClass('valid');
            email_valid = true;
		} else {
			$(this).addClass('not_valid');
            email_valid = false;
		}
	}
}

function checkRegisterForm(form){

    var error = false;
    var hide_error = new Array();

    if(document.getElementsByName('name')[0].value == ''){
        show_form_error(document.getElementsByName('name')[0], mlc_no_name);
        error = true;
    } else if(username_taken){
        show_form_error(document.getElementById('name'), mlc_username_taken);
        username_taken = true;
    } else {
        hide_error[hide_error.length] = document.getElementsByName('name')[0];
    }

	if(form.firstname.value == ''){
        show_form_error(form.firstname, mlc_no_firstname);
        error = true;
    } else {
        hide_error[hide_error.length] = form.firstname;
    }

	if(form.lastname.value == ''){
        show_form_error(form.lastname, mlc_no_lastname);
        error = true;
    } else {
        hide_error[hide_error.length] = form.lastname;
    }

    if(form.street.value == '' || form.street_nr.value == ''){
        show_form_error(form.street_nr, mlc_no_street);
        show_form_error(form.street);
        error = true;
    } else {
        hide_error[hide_error.length] = form.street;
        hide_error[hide_error.length] = form.street_nr;
    }

    if(form.zip.value == '' || form.city.value == ''){
        show_form_error(form.city, mlc_no_city);
        show_form_error(form.zip);
        error = true;
    } else {
        hide_error[hide_error.length] = form.city;
        hide_error[hide_error.length] = form.zip;
    }

    if(form.pass1.value == '' || form.pass2.value == ''){
        show_form_error(form.pass2, mlc_pass_invalid);
        show_form_error(form.pass1);
        error = true;
    } else {
        hide_error[hide_error.length] = form.pass1;
        hide_error[hide_error.length] = form.pass2;
    }

    if(form.email.value == '' || !email_valid){
        show_form_error(form.email, mlc_no_email);
        error = true;
    } else {
        hide_error[hide_error.length] = form.email;
    }

	if(!form.affirmation.checked){
        show_form_error(form.affirmation, mlc_do_affirmation);
        error = true;
    } else {
        hide_error[hide_error.length] = form.affirmation;
    }


    if(error){
        var i;
        for(i = 0; i < hide_error.length; i++){
            hide_form_error(hide_error[i]);
        }
    }

    return !error;

}


function checkProfileForm(form){


    var error = false;
    var hide_error = new Array();

    if(form.firstname.value == ''){
        show_form_error(form.firstname, mlc_no_firstname);
        error = true;
    } else {
        hide_error[hide_error.length] = form.firstname;
    }

    if(form.lastname.value == ''){
        show_form_error(form.lastname, mlc_no_lastname);
        error = true;
    } else {
        hide_error[hide_error.length] = form.lastname;
    }

    if(form.street.value == '' || form.street_nr.value == ''){
        show_form_error(form.street_nr, mlc_no_street);
        show_form_error(form.street);
        error = true;
    } else {
        hide_error[hide_error.length] = form.street;
        hide_error[hide_error.length] = form.street_nr;
    }

    if(form.zip.value == '' || form.city.value == ''){
        show_form_error(form.city, mlc_no_city);
        show_form_error(form.zip);
        error = true;
    } else {
        hide_error[hide_error.length] = form.city;
        hide_error[hide_error.length] = form.zip;
    }

    if(form.pass1.value != '' && form.pass2.value != '' && form.pass1.value != form.pass2.value){
        show_form_error(form.pass2, mlc_pass_invalid);
        show_form_error(form.pass1);
        error = true;
    } else {
        hide_error[hide_error.length] = form.pass1;
        hide_error[hide_error.length] = form.pass2;
    }

    if(form.email.value == '' || !form.email.value.match(email_regex)){
        show_form_error(form.email, mlc_no_email);
        error = true;
    } else {
        hide_error[hide_error.length] = form.email;
    }

    if(error){
        var i;
        for(i = 0; i < hide_error.length; i++){
            hide_form_error(hide_error[i]);
        }
    }

    return !error;

}



function checkApointment(form){

    var error = false;
    var hide_error = new Array();

    if(form.nachname.value == ''){
        show_form_error(form.nachname, mlc_error_lastname);
        error = true;
    } else {
        hide_error[hide_error.length] = form.nachname;
    }

    if(form.vorname.value == ''){
        show_form_error(form.vorname, mlc_error_firstname);
        error = true;
    } else {
        hide_error[hide_error.length] = form.vorname;
    }

    if(form.strasse.value == ''){
        show_form_error(form.strasse, mlc_error_street);
        error = true;
    } else {
        hide_error[hide_error.length] = form.strasse;
    }

    if(form.plz.value == '' || form.ort.value == ''){
        show_form_error(form.ort, mlc_error_zip);
        form.plz.className = 'error';
        error = true;
    } else {
        hide_error[hide_error.length] = form.ort;
        form.plz.className = '';
    }

    if(form.fon.value == ''){
        show_form_error(form.fon, mlc_error_phone_empty);
        error = true;
    } else {
        hide_error[hide_error.length] = form.fon;
    }


    var RegExpr = /^[\w\d-_]+(\.[_\w\d-]+)*@[\w\d-]+(\.[_\w\d-]+)*\.([\w]{2,5})$/i;
    if( !RegExpr.exec(form.email.value) || form.email.value == '' ){
        show_form_error(form.email, mlc_error_email);
        error = true;
    }else{
        hide_error[hide_error.length] = form.email;
    }


    if(!form.preisinfo.checked){
        show_form_error(document.getElementById('rechtsbelehrung'), mlc_error_preisinfo);
        error = true;
    } else {
        hide_error[hide_error.length] = document.getElementById('rechtsbelehrung');
    }

    if(error){
        var i;
        for(i = 0; i < hide_error.length; i++){
            hide_form_error(hide_error[i]);
        }
    }

    return !error;
}