if (!window.console || !console) {
    window.console = {log: function(a){}};
}
var i18n = {
    global : {
        "error"     : "Fehler",
        "close"     : "schließen",
        "clickToEdit": 'Doppelklick zum Bearbeiten',
        "internalError": "Interner Fehler, bitte probier es später wieder.",
        "confirm"   : "Bist du sicher?"
    },
    status : {
        "loading"   : "Seite wird geladen ...",
        "ready"     : "Fertig geladen!",
        "error403"  : "<p>Du hast nicht die nötigen Rechte diese Seite aufzurufen oder zu bearbeiten.</p>",
        "error404"  : "<p>Die angeforderte Seite wurde nicht gefunden.</p>",
        "error500"  : "<p>Interner Fehler, bitte probier es später wieder.</p>",
        "error503"  : "<p>Der Server ist gerade nicht erreichbar, bitte probier es <strong>viel</strong> später noch mal.</p>",
        "servererror": "Serverfehler",
        "pageStillLoading": "Seite wird IMMER NOCH geladen ..."
    },
    date : {
        "date"      : "39.19.2999",
        "datetime"  : "39.19.2999 29:59:59",
        "time"      : "29:59:59"
    },
    upload : {
        "ready"     : "Datei fertig hochgeladen. Du wirst jetzt weitergeleitet ...",
        "errror411" : "Ein Fehler ist aufgetreten: Dein Browser muss eine 'Content-Lenght'-Kopfzeile setzen. Bitte benutzen einen anderen Browser.",
        "error413"  : "Ein Fehler ist aufgetreten: Die Datei ist zu groß!",
        "errror"    : "Ein Serverfehler ist aufgetreten, bitte probiere es später wieder."
    }
};

function modalClick() {
    $('#modalkiste').load(this.href + " .modal",null,function() {
        $('#modalkiste').enhance();
        $('#modalkiste').show();
    });
    return false;
}

function einkaufen() {
    var anzahl = parseInt($(this).parent().find('input').val());
    if (anzahl.constructor!=Number || isNaN(anzahl)) anzahl=1;
    $(this).parent().find('input').val(anzahl);
    if ($('.inhalt .einkaufskorb').length < 1) {
        $('.seitenstreifen.rechts').load(this.href+ "&anzahl=" +anzahl+ " .seitenstreifen.rechts .dynamisch",null,function() {
            $('.seitenstreifen.rechts').enhance();
            $('#modalkiste').hide();
        });
    } else {
        $('.inhalt').load(this.href+ "&anzahl=" +anzahl+ " .inhalt",null,function() {
            $('.inhalt').enhance();
            $('#modalkiste').hide();
        });
    }
    return false;
}

function vollstaendig(formular) {
    var ergebnis = true;
    $('input.pflicht:visible',formular).each(function() {
        if ($(this).attr('type')=='radio' || $(this).attr('type')=='checkbox') {
           var gewaehlt = false;
           $(this).parents('form').find('[name='+$(this).attr('name')+']').each(function() {
               if (this.checked) gewaehlt = true;
           });
           if (!gewaehlt) {
               fehlerAnhaengen(this,'Bitte auswählen',"check");
               ergebnis = gewaehlt;
           }
       } else if ($(this).val()=="") {
           ergebnis = false;
           fehlerAnhaengen(this,'Bitte Feld ausfüllen');
       }
    });
    $('input.email:visible',formular).each(function() {
       if ($(this).val()!='' && checkEmail($(this).val())!='') {
           ergebnis = false;
           fehlerAnhaengen(this,checkEmail($(this).val()));
       }
    });
    $('input.ziffern:visible',formular).each(function() {
       if ($(this).val()!='' && !/^\d+$/.test($(this).val())) {
           ergebnis = false;
           fehlerAnhaengen(this,'Bitte nur Ziffern (ohne Leerzeichen) eingeben');
       }
    });
    $('input.plz:visible',formular).each(function() {
       if ($(this).val().length!=5 || !/^\d+$/.test($(this).val())) {
           ergebnis = false;
           fehlerAnhaengen(this,'Bitte eine deutsche PLZ eintragen');
       }
    });
    $('textarea.pflicht:visible',formular).each(function() {
       if ($(this).val()=="") {
           ergebnis = false;
           fehlerAnhaengen(this,'Bitte Feld ausfüllen');
       }
    });
    return ergebnis;
}

function fehlerAnhaengen(feld,nachricht,styleClass) {
    feld = $(feld);
    var old = feld.parent().children('.fehler');
    styleClass = styleClass ? 'fehler ' + styleClass : 'fehler';
    if (old.length==1) {
        old.text(nachricht);
        old.attr("class", styleClass);
    } else {
        feld.after("<div class='" + styleClass + "'>"+nachricht+"</div>");
    }
    feld.bind('change',null,function() {
        if ($(this).attr('type')=='radio'||$(this).attr('type') == 'checkbox') {
           $(this).parents('form').find('[name='+$(this).attr('name')+']').each(function(){
               $(this).parent().children('.fehler').remove();
           });
        }else {
            $(this).parent().children('.fehler').remove();
        }
      //vollstaendig($(this).parents('form'));
   });
}

// checkEmail == Copyright (c) 2001 by Apple Computer, Inc., All Rights Reserved.
// Thanks a bunch!

function checkEmail(strng) {
    var error='';
    var emailFilter=/^.+@.+\..{2,3}$/;
    if (!(emailFilter.test(strng))) {
       error = "Bitte geben Sie eine richtige E-Mail-Adresse an";
    }else {
    //test email for illegal characters
       var illegalChars= /[\(\)\<\>\,\;\:\\\"\[\]]/;
         if (strng.match(illegalChars)) {
          error = "Die E-Mail-Adresse enthält unerlaubte Zeichen";
       }
    }
    return error;
}

// Confirmations
$.Enhancer.add(function(){
    this.find('.confirm').each(function(){
        var old = $(this).attr('onclick');
        if (old) $(this).data('confirmClick', old);
        $(this).attr('onclick', '');
    });
    this.find('.confirm').click(function(e) {
        var confirmClick = $(this).data('confirmClick');
        if (!confirm(i18n.global.confirm) || $.isFunction(confirmClick) && !confirmClick()) {
            e.stopPropagation();
            e.preventDefault();
            return false;
        }

        return true;
    });
});

// Jean & Lili
$.Enhancer.add(function(){
    this.find('.bildergalerie li:not(:first)').css('opacity','0.5');
    this.find('.bildergalerie').prepend('<li><img src="'+$('.bildergalerie li:first a').attr('href')+'" /></li>');
    this.find('.bildergalerie li a').mouseover(function(){
            $(this).parents('ul').find('li:first img').attr('src',$(this).attr('href'));
            $(this).parents('ul').find('li:not(:first)').css('opacity','0.5');
            $(this).parents('li').css('opacity','1.0');
        }).click(function(){return false;});
    this.find('.neuigkeiten').prepend('<div class="dekoration"></div>');
    this.find('#warenkorb_rechts h4').after('<div class="dekoration"></div>');
    this.find('a[rel="einkaufskorb"]').click(einkaufen);
    if ($.browser.msie && $.browser.version < 7) {
        if (typeof(IE7) == "undefined") {
            $.getScript("http://ie7-js.googlecode.com/svn/version/2.0(beta3)/IE7.js");
        } else if ($.isFunction(document.recalc)) {
            window.setTimeout(function() { document.recalc(); }, 20);
        } else {
            $.getScript("http://ie7-js.googlecode.com/svn/version/2.0(beta3)/ie7-recalc.js", function() {
                document.recalc();
            });
        }
    }
});

// Modal
$.Enhancer.add(function(){
    this.find('a[rel="modal"]').click(modalClick);
    this.find('body').append('<div id="modalkiste" style="display: none"></div>');
    if (this.attr('id') != 'modalkiste') {
        this.find('#modalkiste').click(function() { $(this).hide(); });
    }
    this.find('.modal').click(function(e){
        e.stopPropagation();
    });
    this.find('.modal').prepend('<a class="schliessen" href="javascript:;" onclick="$(\'#modalkiste\').hide();">zurück <span>X</span></a>');
    this.find('.modal .rechts ul li').each(function() {
        $(this).parents('ul').find('li:not(:first)').css('opacity','0.5');
        $(this).find('a').mouseover(function() {
            $(this).parents('#modalkiste').find('.links img').attr('src',$(this).attr('href'));
            $(this).parents('ul').find('li').css('opacity','0.5');
            $(this).parents('li').css('opacity','1.0');
        });
        $(this).find('a').click(function() {return false;});
    });
});

// Edit
$.Enhancer.add(function(){
    this.find('.edit').makeEditable({clickToEdit: i18n.global.clickToEdit, getValue: function($$){
        return $.InlineEdit.getValue.call(this, $$);
    }});
});

// Ajax Forms
$.Enhancer.add(function(){
    this.find('.ajaxSelf').click(function(e) {
        e.data = $(this);
        return $(this).ajaxSubmit(e);
    });
    this.find('.ajaxForm:submit, .ajaxForm:image').click(function(e) {
        return $(this).parents('form').ajaxSubmit(e);
    });
    this.find('select.ajaxForm').change(function(e) {
        return $(this).parents('form').ajaxSubmit(e);
    });
    this.find('.ajaxUpload').click(function(e) {
        var form = $(this).parents('form');
        form.attr("enctype", "multipart/form-data");
        return form.ajaxSubmit(e);
    });
});
