$(function(){
    $('#CreateSubaccount').click(function(){
        $.post("", "action=new_subaccount&ajax=true", function(data){
            $(data).find('#RegisterSubaccount').dialog({
                resizable: false,
                open: function(){
                    var title = $(this).find('h2').text();
                    $(this).find('h2').remove();
                    $(this).dialog("option", "title", title);
                    registerSubaccount();
                    $(this).find('input').validation();
                    var obj = $(this).find('input');
                    $(this).find('form').ajaxForm({
                        beforeSubmit: function(arr){
                            arr.push({
                                name: 'ajax', 
                                value: true
                            });
                                
                            obj.each(function(){
                                if($(this).val() == "Bitte eintragen") $(this).val("")
                            })
                        },
                        success: function(data){
                            if($(data).find('#status').length > 0 || $(data).find('#status').text().length > 0){
                                alert($(data).find('#status').text());
                            }
                        }
                    });
                },
                width: 600,
                position: ['center', 25],
                modal: true,
                close: function(ui){
                    window.location.href = "./";  
                }
            });
        });
            
        return false;
    });
    
    
    $('input[name=checkDirectOrder]').click(function(){
        var checked = $(this).parent().find(':checked').length > 0 ? true : false;
        var login_id = $(this).attr('title');
        var action = "action=alter_confirm_order&login_id="+login_id+"&value="+checked+"&ajax=true";
        $.post(window.location.href, action, function(){
            
            });
    });
    
    $('input[name=waitConfirm]').click(function(){
        var checked = $(this).parent().find(':checked').length > 0 ? true : false;
        var purchase_id = $(this).attr('title');
        var action = "action=alter_purchase_status&purchase_id="+purchase_id+"&value="+checked+"&ajax=true";
        $.post(window.location.href, action, function(){
            window.location.href = "./";  
        });
    })
});



$(function(){
    var error = "";
    var minerror = "";
    var L = '\\u0041-\\u005A\\u0061-\\u007A\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u024F\\u0370-\\u07BF\\u0900-\\u1FFF';
    
    $.fn.validName = function(){
        var text = $(this).val();
        if(text.match(new RegExp('^(['+L+']+[\\u0027\\.\\-]?[\\ ]?)+['+L+'\\.]+$'))){
            error = "";
        }else{
            error = "Ungültiger Name";
            if(text.length == 0){
                error = "";  
            }
        }
    }
    
    $.fn.validFirm = function(){
        var text = $(this).val();
        if(text.match(/^([\S]+[\ ]?)+[\S]+$/)){
            error = "";
        }else{
            error = "Ungültige Eingabe";
            if(text.length == 0){
                error = "";  
            }
        }
    }

    $.fn.validZipCode = function(){
        var text = $(this).val();
        if(text.match(/^(([\d]{2,4}[\ ]?[\d]{2,4})|([\d]{3,5}\-[\d]{3,5})|([A-Z]{1,2}[\d]{1,2}[A-Z]?\ [\d][A-Z]{2})|([A-Z][\d][A-Z]\ [\d][A-Z][\d]))$/)){
            error = "";
        }else{
            error = "Ungültige Postleitzahl";
            if(text.length == 0){
                error = "";  
            }
        }
    }
    
    $.fn.validPhone = function(){
        var text = $(this).val();
        if(text.match(/^([+]?([\d]+[\/\ \-]*(\([\d]+\) )*)+)[\d]+$/)){
            error = "";
        }else{
            error = "Telefonnummer nicht korrekt";
            if(text.length == 0){
                error = "";  
            }
        }
    }

    $.fn.validEmail = function(){
        var text = $(this).addClass('CheckEmail').val();
        if(text.match(/^([_a-zA-Z0-9\-]+)(\.[a-zA-Z0-9\-]+)*\@([a-zA-Z0-9\-]+\.)+([a-zA-Z]{2,4})$/)){
            error = "";
        }else{
            error = "Keine E-Mail-Adresse";
            if(text.length == 0){
                error = "";  
            }
        }
    }
    
    $.fn.validStreet = function(){
        var text = $(this).val();
        if(text.length>6){
            error = "";
        }else{
            error = "Keine gültige Straße";
            if(text.length == 0){
                error = "";
            }
        }
    }
    $.fn.validText = function(){
        var text = $(this).val();
        if(text.length>0){
            error = "";
        }else{
            error = "Ungültige Eingabe";
            if(text.length == 0){
                error = "";
            }
        }
    }
    $.fn.validNumber = function(){
        var text = $(this).val();
        if(text.match(/^[+-]?[\d]+$/)){
            error = "";
        }else{
            error = "Bitte geben Sie eine Zahl ein";
            if(text.length == 0){
                error = "";
            }
        }
    }
        
    $.fn.validHomepage = function(){
        var text = $(this).val();
        if(text.match(/^((http|https|ftp):\/\/)?(www\.)?[A-Za-z0-9\.-]+\.[A-Za-z]{2,6}(\/[A-Za-z0-9\/~&#%_\.\?=]*)*$/)){
            error = "";
        }else{
            error = "Keine URL";
            if(text.length == 0){
                error = "";  
            }
        }
    }
    
    $.fn.validMin = function(num){
        if($(this).val().toString().length < num){
            minerror = "Benötigt werden " + num + " Zeichen.";
        }else{
            minerror = "";
        }
    }
    $.fn.validMax = function(){
        //console.log($(this).val().toString().length);
        //console.log($(this).attr('max'));
        if($(this).val().toString().length == $(this).attr('max')){
            minerror = "Maximale Anzahl von " + num + " Zeichen erreicht.";
        }else{
            minerror = "";
        }
    }
    
    $.fn.required = function(){
        if($(this).val().length <= 0){
            $(this).addClass('errorRequired');
        }else{
            $(this).removeClass('errorRequired');
        }
    }  
    
    $.fn.validation = function(){
        $(this).each(function(){
            if($(this).hasClass('required')){
                $(this).prev("label").html($(this).prev("label").text() + "<span class=\"red\">*</span>");
                $(this).keyup(function(){
                    $(this).required()
                }).required();
            }
        
            if($(this).hasClass('name')){
                $(this).keyup(function(){
                    $(this).validName()
                });
            }
            if($(this).hasClass('phone')){
                $(this).keyup(function(){
                    $(this).validPhone()
                });
            }
            if($(this).hasClass('email')){
                $(this).keyup(function(){
                    $(this).validEmail()
                });
            }
            if($(this).hasClass('firm')){
                $(this).keyup(function(){
                    $(this).validFirm()
                });
            }
            if($(this).hasClass('zipcode')){
                $(this).keyup(function(){
                    $(this).validZipCode()
                });
            }   
            if($(this).hasClass('street')){
                $(this).keyup(function(){
                    $(this).validStreet()
                });
            }          
            if($(this).hasClass('text')){
                $(this).keyup(function(){
                    $(this).validText();
                });
            }
            if($(this).hasClass('number')){
                $(this).keyup(function(){
                    $(this).validNumber();
                });
            }
            if($(this).hasClass('homepage')){
                $(this).keyup(function(){
                    $(this).validHomepage();
                });
            }
            if($(this).attr('class') != undefined)
                if($(this).attr('class').toString().match(/min[0-9]+/)){
                    var regex = /min([0-9]+)/;
                    var num = parseInt(regex.exec($(this).attr('class').toString())[1]);
                    $(this).keyup(function(){
                        $(this).validMin(num);
                    }).validMin(num);
                }
        
            $(this).keyup(function(){
                $(this).validMax();
            });
        
            $(this).keyup(function(){
                $(this).nextAll('.error').remove();
                if(minerror.length > 0){
                    $(this).after('<div class="error">'+minerror+'</div>');
                    $(this).addClass('errorValid');      
                }else
                if(error.length > 0){
                    $(this).after('<div class="error">'+error+'</div>');
                    $(this).addClass('errorValid');
                }else{
                    $(this).removeClass('errorValid');
                }
            });
        });
    }
});
