var nextAction = "part1";

function setNextAction(a) {
    //document.ticketFormular.nextAction.value = a;
    var elements = document.getElementsByName("nextAction");
    for(var i = 0; i < elements.length; i++) {
        elements[i].value = a;
        nextAction = a;
    }
}

function setCartAction(a) {
    var elements = document.getElementsByName("cartAction");
    for(var i = 0; i < elements.length; i++) {
        elements[i].value = a;
    }
}

function removeItem(a) {
    setCartAction('removeOrder');
    document.cartFormular.selectedItem.value = a;
}


function chkFormular(currentForm) {    
    
    //alert(nextAction);
    
    // if there is a amount field we are in the first formular
    if(currentForm == "part1") {
        
        var tickets = document.ticketFormular.amount.value;
        var ticketReduced = document.ticketFormular.amountReduced.value;
        
        var test1 = checkPositiveInteger(tickets);
        var test2 = checkPositiveInteger(ticketReduced);
        
        if(nextAction == "part1") {
            if((tickets == "") || (ticketReduced == "")) {
                alert("Die angegebene Kartenanzahl ist ungültig!");                  
                return false;
            }   
            
            if((isNaN(tickets)) || (isNaN(ticketReduced))) {
                alert("Die angegebene Kartenanzahl ist ungültig!");                  
                return false;
            }
            
            if((tickets < 0) || (ticketReduced < 0)) {
                alert("Die angegebene Kartenanzahl ist ungültig!");                
                return false;
            }
            
            if((tickets == 0) && (ticketReduced == 0)) {
                alert("Die angegebene Kartenanzahl ist ungültig!");
                return false;
            }
            
            if((tickets%1 != 0) || (ticketReduced%1 != 0)) {
                alert("Die angegebene Kartenanzahl ist ungültig!");
                document.ticketFormular.amount.value = 0;
                document.ticketFormular.amountReduced.value = 0;       
                document.ticketFormular.amount.focus();
                return false;
            }
            
            if((tickets > 50) || (ticketReduced > 50) || ((parseInt(ticketReduced) + parseInt(tickets)) > 50)) {
                alert("Die angegebene Kartenanzahl ist zu groß! (> 50)");
                document.ticketFormular.amount.value = 0;
                document.ticketFormular.amountReduced.value = 0;       
                document.ticketFormular.amount.focus();
                return false;
            }
            
            return true;
        }
        else {
            // weiter...
            if(nextAction == "part2") {
                setCartAction("none");
                if(!checkTotalPrice()) {
                    return false;
                }
                else {
                    return true;
                }
            }
        }
    }
    else if(currentForm == "part2") {
        if(nextAction != "part1") {
            if(!checkName(document.ticketFormular.firstname.value)) {
                alert("Bitte füllen Sie das Feld Vorname aus!");
                document.ticketFormular.firstname.focus();
                return false;
            }
            if(!checkName(document.ticketFormular.lastname.value)) {
                alert("Bitte füllen Sie das Feld Name aus!");
                document.ticketFormular.lastname.focus();
                return false;
            }
            
            if(document.ticketFormular.street.value == "") {        
                alert("Bitte füllen Sie das Feld Straße, Nr aus!");
                document.ticketFormular.street.focus();
                return false;
            }
            
            if(document.ticketFormular.zip.value.length != 5) {
                alert("Bitte geben Sie eine gültige Plz. ein!");
                document.ticketFormular.zip.focus();
                return false;
            }
            
            if(isNaN(document.ticketFormular.zip.value)) {
                alert("Bitte geben Sie eine gültige Plz. ein!");
                document.ticketFormular.zip.focus();
                return false;
            }
            if(!checkName(document.ticketFormular.town.value)) {    
                alert("Bitte geben Sie eine gültige Stadt ein!");
                document.ticketFormular.town.focus();
                return false;
            }
            
            if(!checkEmail(document.ticketFormular.email.value)) {
                alert("Bitte geben Sie eine gültige E-Mail Adresse ein!");
                document.ticketFormular.email.focus();
                return false;
            }
            return true;
        } 
        else {
            return true;
        }
    }
}

function setupProgramPrice() {
    try {
        var v = window.document.ticketFormular;
        if(v != null && v.program != null) {            
            var selectedIndex = v.program.selectedIndex; 
            var priceA = v.program.options[selectedIndex].attributes['a'].value;
            var reducedPriceA = v.program.options[selectedIndex].attributes['ra'].value;
            v.priceA.value = priceA;
            v.reducedPriceA.value = reducedPriceA;
            document.getElementById("priceA").innerHTML = "(je "+ priceA+"&euro)"; document.getElementById("reducedPriceA").innerHTML = "(je "+ reducedPriceA+"&euro)";
        }
    }
    catch(err) {
        alert(err);
    }
}

function checkTotalPrice() {
    return (document.ticketFormular.totalPrice.value > 0);
}

function checkName(feld) {    
    if(feld.length < 1) {
        return false;
    }
    var supported = 0;
    if (window.RegExp) {
        var tempStr = "a";
        var tempReg = new RegExp(tempStr);
        if (tempReg.test(tempStr)) { 
            supported = 1;
        }
    }
    if (!supported) {
        // true wenn kein name
        return (feld == ""); 
    }
    var r1 = new RegExp("^([A-Za-z]|[äöüÄÖÜ])([a-z]|[äöüÄÖÜß])+(([ -]|[-]|[ - ]|[ -])([A-Za-z]|[äöüÄÖÜ])([a-z]|[äöüÄÖÜß])+)*$");
    return (r1.test(feld));
}


function checkEmail(feld) {
    var supported = 0;
    if (window.RegExp) {
        var tempStr = "a";
        var tempReg = new RegExp(tempStr);
        if (tempReg.test(tempStr)) { 
            supported = 1;
        }
    }
    if (!supported)
        return (feld.indexOf(".") > 2) && (feld.indexOf("@") > 0);
    
    var r1 = new RegExp("(@.*@)|(\\.\\.)|(@\\.)|(^\\.)");
    var r2 = new RegExp("^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,4}|[0-9]{1,3})(\\]?)$");
    return (!r1.test(feld) && r2.test(feld));
}


function toggleSubmitorder() {
    if(document.ticketFormular.submitorder) {
        document.ticketFormular.submitorder.disabled = !document.ticketFormular.agb.checked;
    }
}


function checkPositiveInteger(n) {
    if(isNaN(n)) {
        return false;
    }
    
    var t = parseInt(n);
    
    if(isNaN(t) || (t <= 0)) {
        return false;
    }
    if(n%1 != 0) {
        alert("Wir verkaufen nur ganze Karten. Guter Versuch!");
        return false;
    }
    // avoid floating point numbers...
    if(t != n) {
        return false;   
    }
    return true;
}

