/**
 * @author cd
 */

$(window).load(function(){

    // Pop-Up für "In Warenkorb eintragen" und "Warenkorb anzeigen".                
    $("a.iframe").fancybox();
    
    //Nur Zahlen und backspace sind erlaubt			
    $('.dieAnzahl').keypress(function(event){
        //alert(event.which);
        //nur Zahlen und Return
        if ((event.which < 48 || event.which > 57) && event.which != 8) {
            return false;
        }
    });
    
    /*
     * Anzeige der Preise
     * Achtung, die HTML-Struktur muss beachtet werden da mir DOM gearbeitet wird.
     * Siehe: (bei den Funktionen) -> bestellung_warenkorbAnzeigen bzw. createWarenkorbBestellungTable
     */
    $('.dieAnzahl').each(function(event){
		//jedes input-Feld mit der Klasse 'dieAnzahl' bekommt den Event-handler 'keyup'.        		
        $(this).keyup(function(event){
			 //nur Zahlen und Return
            if ((event.which > 47 && event.which < 58) || event.which==8) {								
                //den Grundpreis pro Einheit abholen (im Hidden Field -> functions -> createWarenkorbBestellungTable)
                var derPreis = $(this).parent().siblings('.preis_anzeige').children('input').val();
                derPreis = parseFloat(derPreis);
								
                var alleArtikelPreis = 0.00;              
                
                //Anzahl abholen(auf NaN bzw backspace prüfen!!)
                var anzahl = parseInt($(this).val());
                
                // Preise berechnen
				if (anzahl != 0 && !isNaN(anzahl)) {
					 // Preis nach Anzahl der Artikel berechnen und anzeigen
					var gesamtpreis = derPreis * anzahl;					
					//Preis formatieren für die Anzeige.
					gesamtpreisFormat = gesamtpreis.toFixed(2);
					gesamtpreisFormat = gesamtpreisFormat.toString(10);
					gesamtpreisFormat = gesamtpreisFormat.replace(".", ",");
					//in die Seite schreiben (einzelner Artikelpreis mal Anzahl)
					$(this).parent().siblings('.preis_anzeige').children('.preisHierAnzeigen').html(gesamtpreisFormat);
					
					//neuen Gesamtpreis aller Artikel berechnen					
					$('.dieAnzahl').each(function(){
						var loop_derPreis = $(this).parent().siblings('.preis_anzeige').children('input').val();	
						var loop_anzahl = parseInt($(this).val());					
                		loop_derPreis = parseFloat(loop_derPreis);
						alleArtikelPreis += loop_derPreis * loop_anzahl;						
					});
					
					alleArtikelPreisFormat = alleArtikelPreis.toFixed(2);
					alleArtikelPreisFormat = alleArtikelPreisFormat.toString(10);
					alleArtikelPreisFormat = alleArtikelPreisFormat.replace(".", ",");
					$('#derGesamtpreis').html(alleArtikelPreisFormat+'&nbsp;&euro;');					
				}
				else{
					$('#derGesamtpreis').html('Das Feld "Anzahl" darf nicht 0 oder leer sein.');
				}
            }
        });    
    });
    
    $("#bestForm").submit(function(){
        var fehler = false;
		var plzfilter = /^[0-9]{5}$/;
		var telfilter = /^\(?[0-9]{3}\)?|[0-9]{3}[-. ]? [0-9]{3}[-. ]?[0-9]{4}$/;
		var emailfilter = /^\w+[\+\.\w-]*@([\w-]+\.)*\w+[\w-]*\.([a-z]{2,4}|\d+)$/i;
        $('.dieAnzahl').each(function(){
            if ($(this).val() == "0" || $(this).val() == "") {
                if ($(this).next()) 
                    $(this).next().remove();
                $(this).after("<p class='fehler'>Bitte geben Sie hier ein Zahl an (keine Null!).</p>");
                $(this).addClass('fehlerBorder');
                fehler = true;
            }
            else {
                $(this).next().remove();
                $(this).removeClass('fehlerBorder');
            }
        });
        
		// Name
        if ($("#nameID").val() == "") {
            if ($("#nameID").next())$("#nameID").next().remove();
            $("#nameID").after("<p class='fehler'>Bitte geben Sie Ihren Namen an.</p>");
            $("#nameID").addClass('fehlerBorder');
            fehler = true;
        }
		else if($("#nameID").val().length < 4 ){
			if ($("#nameID").next())$("#nameID").next().remove();
            $("#nameID").after("<p class='fehler'>Bitte geben Sie mahr als 3 Zeichen an.</p>");
            $("#nameID").addClass('fehlerBorder');
            fehler = true;
		}
        else {
            $("#nameID").next().remove();
            $("#nameID").removeClass('fehlerBorder');
        }
        
		// Firma
        if ($("#firmaID").val() == "") {
            if ($("#firmaID").next())$("#firmaID").next().remove();
            $("#firmaID").after("<p class='fehler'>Bitte geben Sie den Firmennamen an.</p>");
            $("#firmaID").addClass('fehlerBorder');
            fehler = true;
        }
		else if ($("#firmaID").val().length < 2) {
            if ($("#firmaID").next())$("#firmaID").next().remove();
            $("#firmaID").after("<p class='fehler'>Bitte geben Sie mahr als 1 Zeichen an.</p>");
            $("#firmaID").addClass('fehlerBorder');
            fehler = true;
        }
        else {
            $("#firmaID").next().remove();
            $("#firmaID").removeClass('fehlerBorder');
        }
		
		// Strasse
        if ($("#strasseID").val() == "") {
            if ($("#strasseID").next())$("#strasseID").next().remove();
            $("#strasseID").after("<p class='fehler'>Bitte geben Sie die Strasse an.</p>");
            $("#strasseID").addClass('fehlerBorder');
            fehler = true;
        }
		else if ($("#strasseID").val().length < 4) {
            if ($("#strasseID").next())$("#strasseID").next().remove();
            $("#strasseID").after("<p class='fehler'>Bitte geben Sie mahr als 3 Zeichen an.</p>");
            $("#strasseID").addClass('fehlerBorder');
            fehler = true;
        }
        else {
            $("#strasseID").next().remove();
            $("#strasseID").removeClass('fehlerBorder');
        }
		
		// PLZ	
        if ($("#plzID").val().length < 4) {
            if ($("#plzID").next())$("#plzID").next().remove();
            $("#plzID").after("<p class='fehler'>Bitte geben Sie Ihre PLZ an.</p>");
            $("#plzID").addClass('fehlerBorder');
            fehler = true;
        }		
        else {
            $("#plzID").next().remove();
            $("#plzID").removeClass('fehlerBorder');
        }
		
		// Ort
        if ($("#ortID").val() == "") {
            if ($("#ortID").next())$("#ortID").next().remove();
            $("#ortID").after("<p class='fehler'>Bitte geben Sie den Ort an.</p>");
            $("#ortID").addClass('fehlerBorder');
            fehler = true;
        }
		else if ($("#ortID").val().length < 2) {
            if ($("#ortID").next())$("#ortID").next().remove();
            $("#ortID").after("<p class='fehler'>Bitte geben Sie mahr als 1 Zeichen an.</p>");
            $("#ortID").addClass('fehlerBorder');
            fehler = true;
        }
        else {
            $("#ortID").next().remove();
            $("#ortID").removeClass('fehlerBorder');
        }
		
		// Telefon	
        if ($("#telefonID").val() == "") {
            if ($("#telefonID").next())$("#telefonID").next().remove();
            $("#telefonID").after("<p class='fehler'>Bitte geben Sie Ihre Telefonnummer an.</p>");
            $("#telefonID").addClass('fehlerBorder');
            fehler = true;
        }
		// Kritisch!!! (Reg verbessern)
		/*
		else if(!telfilter.test($("#telefonID").val())) {
            if ($("#telefonID").next())$("#telefonID").next().remove();
            $("#telefonID").after("<p class='fehler'>Bitte geben Sie Ihre Telefonnummer an. Achten Sie bitte auf Tippfehler.</p>");
            $("#telefonID").addClass('fehlerBorder');
            fehler = true;
        }
        */
        else {
            $("#telefonID").next().remove();
            $("#telefonID").removeClass('fehlerBorder');
        }
		
		// Fax
		/*
        if ($("#faxID").val() == "") {
            if ($("#faxID").next())$("#faxID").next().remove();
            $("#faxID").after("<p class='fehler'>Bitte geben Sie Ihre Faxnummer an.</p>");
            $("#faxID").addClass('fehlerBorder');
            fehler = true;
        }
        else {
            $("#faxID").next().remove();
            $("#faxID").removeClass('fehlerBorder');
        }
        */
		
		// E-Mail
        if ($("#emailID").val() == "") {
            if ($("#emailID").next())$("#emailID").next().remove();
            $("#emailID").after("<p class='fehler'>Bitte geben Sie Ihre E-Mailadresse an.</p>");
            $("#emailID").addClass('fehlerBorder');
            fehler = true;
        }  	
		else if (!emailfilter.test($("#emailID").val())) {
            if ($("#emailID").next())$("#emailID").next().remove();
            $("#emailID").after("<p class='fehler'>Bitte geben Sie Ihre E-Mailadresse an. Achten Sie bitte auf Tippfehler.</p>");
            $("#emailID").addClass('fehlerBorder');
            fehler = true;
        }
        else {
            $("#emailID").next().remove();
            $("#emailID").removeClass('fehlerBorder');
        }
		
		// AGB gelesen?
        if (!document.getElementById('AGBID').checked) {
            if ($("#AGBID").next())$("#AGBID").next().remove();
            $("#AGBID").after("<p class='fehler'>Bitte bestätigen Sie die AGBs.</p>");
            $("#AGBID").addClass('fehlerBorder');
            fehler = true;
        }
        else {
            $("#AGBID").next().remove();
            $("#AGBID").removeClass('fehlerBorder');
        }
        
        if (fehler) 
            return false;
        else 
            return true;
    });
    
});
