/* 
 * Default Javascript calls
 */
/* Kontakt-Box öffnen */

$(document).ready(function(){	
    /* Slider im Seitenkopf aktivieren */
    $("#slider").initSlider();

    /* Slide nach links laufen lassen */
    $('#prevBtn a').click(function() {
        $('#slider').slideLeft(function() {

            });
    });
    /* Slide nach rechts laufen lassen */
    $('#nextBtn a').click(function() {
        $('#slider').slideRight(function() {

            });
    });
    
    $('div.innerSlider').easySlider({
        auto: true,
        continuous: true,
        numeric: true
    }); 
        
     
    $('a.callTopics').click(function(){
        $('div.nDialog').dialog("open");
    });
        
    $('div.nDialog').dialog({
        "autoOpen": false,
        "modal": true,
        "minWidth": 670,
        "minHeight": 450,
        title: 'Welche Themen interessieren Sie besonders?',
        buttons: [
        {
            text: "Ok",
            click: function() {
                $(this).dialog("close");
            }
        }
        ]
    });
    
    // Initial nur den ersten Eintrag einer ausklappbaren Liste anzeigen
    $('div.ribbonMenue ul > li:not(.closed)').each(function() {
        $(this).toggleClass("closed"); 
    })
    
    // Listenteil aufklappen, der auf den momentanen Kontext referenziert
    $('div.ribbonMenue ul > li > ul > li A').each(function() {
        currLocation = $(location).attr('pathname').match(/.*\/(.*)$/)[1];
        if(currLocation == $(this).attr('href').match(/.*\/(.*)$/)[1]){
            $(this).addClass('current');
            $(this).parent().parent().parent().removeClass("closed"); 
            $(this).parent().parent().parent().parent().addClass("gotCurrent"); 
            foundCurrent = true;
        }
        return;
    })
    
    
    $('div.ribbonAccordion > ul > li').each(function() {
        $(this).toggleClass("closed"); 
    });
    
    $('div.ribbonAccordion div.ribbonTop').click(function() {
        $(this).next().slideToggle('slow');
        $(this).parent().toggleClass("closed"); 
        return false;
    }).next().hide().toggleClass("closed");
        
    $('div.ribbonAccordion > ul > li:first-child div.ribbonTop').each(function() {
       $(this).next().slideToggle('slow');
       $(this).parent().toggleClass("closed"); 
    });
  
    $('div.ribbonMenue ul:not(.gotCurrent) > li:first-child ').each(function() {
        $(this).toggleClass("closed"); 
    })
           
               
    $('.accordion legend, div.ribbonMenue ul > li > div.ribbonTop').click(function() {
        $(this).next("ul").slideToggle("slow"); 
        $(this).parent().toggleClass("closed"); 
    })
    
    
    
    $('input#wants_appointment').change(function () {
        if(this.checked) {
            //do the stuff that you would do when 'checked'
            $('.optInDate').fadeIn();
            return;
        } else{
            $('.optInDate').fadeOut();
            $('#appointment_datetime').val('');
        }
            
            
    //Here do the stuff you want to do when 'unchecked'
    });
    
    
    // Dem Anwender auf der Startseite die Auswahlmoeglichkeiten in den
    // Themenbereichen zeigen.
    $('ul.topicSelection li ul:hidden').each(

        function (index,value) {
            //  $(this).slideDown("slow"),$(this).slideUp("slow");
            $(this).effect("pulsate", {
                times:1
            },2500),
            $(this).fadeOut("3000");

        }
        );


    $('#appointment_datetime').datetimepicker(
    {
        hour: 10,
        minute: 15,
        timeOnlyTitle: "Bitte zeit w&auml;hlen",
        timeText:"Zeit",
        hourText:"Stunde",
        minuteText:"Minute",
        currentText:"Jetzt",
        closeText: "Ok"
    });

                    
    $("#appointment_datetime").focus(function(){
        $("#wants_appointment").attr('checked', true)
    });
                    
    $(".toggleContactSlide").click(function() {
        var $contactWrap = $('.modalContactWrap');
                    
                    
        if($contactWrap.width() < 1){
            // Beim öffnen das Kontaktformulares muss das 
            // Umschließende Element auf Position absolute gesetzt
            // werden. Dies ist notwendig, um das Formular "scrollbar"
            // zu machen, sollte es höher als der Sichtbereich werden.
            // Beim verbleiben auf position fixed, würde ein Scrollen
            // verhinert werden und sich nur der static-Context im Body 
            // Bewegen.
                        
            // Aktuelle, durch fixed erreichte Position ermitteln
            position = $contactWrap.position();
                
            // Durch ein Style="top:Xpx" wird ein verspringen beim
            // Umschalten von fixed auf absolute verhindert
            $contactWrap.css('top',position.top-59);
            $contactWrap.css('position','absolute');
                        
            // Animation zum öffnen und schließen
            $contactWrap.animate({
                width: "952"
            }, "500",
            function() {
                $contactWrap.animate({
                    right: "15%"
                }, "500", function(){
                    // $contactWrap.css('overflow','visible');
                    // Wenn noch kein Name eingegeben wurde, Namensfeld fokusieren
                    $nameField = $("input#name");
                    if($nameField.val() == "")
                        $nameField.focus();
                        
                }
                )
            });
        }
        else {
            // Werte wieder auf den Standard zurücksetzen
            $contactWrap.css('position','fixed');
            // $contactWrap.css('overflow','hidden');
            $contactWrap.css('top','50%');
            $contactWrap.animate({
                right: 0
            }, "500",
            function() {
                $contactWrap.animate({
                    width: "0"
                }, "500")
            });
        }
    });   
    
    
    $(".showlogin").click(function(event){
        event.preventDefault();
        $(".callDownload:visible").slideUp('slow'),$(".hiddenLogin:hidden").slideDown('slow');
        $("input#mail").focus();
        
    });
    
    $(".showRegister").click(function(event){
        event.preventDefault();
        
      
        $(".callDownload:visible, .hiddenLogin:visible").slideUp('slow'),$(".hiddenRegisterForm:hidden").slideDown('slow');
        $("input#forename").focus();
        
    });
    
    $(".abort").click(function(event){
        event.preventDefault();
        $(".hiddenRegisterForm:visible, .hiddenLogin:visible").each(function(){
            $(this).slideUp('slow');
        });
        $(".callDownload:hidden").slideDown('slow');
    });
    
   
    



    $("#postModalContact").validate({
 
        messages: {
            email:'Diese Emailadresse ist nicht korrekt.',
            name:'Bitte geben Sie Ihren Namen an.',
            required: "Dieses Feld ist ein Pflichtfeld.",
            maxlength: jQuery.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),
            minlength: jQuery.validator.format("Geben Sie bitte mindestens {0} Zeichen ein.")
        },
        submitHandler: function(form) {
            ajaxSubmit("postModalContact",contactMailSent);
        }
    });
    
    $("#sideLogin").validate({
 
        messages: {
            mail:'Diese Emailadresse ist nicht korrekt.',
            password:'Bitte geben Sie Ihr Passwort ein.',
            required: "Dieses Feld ist ein Pflichtfeld.",
            maxlength: jQuery.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),
            minlength: jQuery.validator.format("Geben Sie bitte mindestens {0} Zeichen ein.")
        },
        submitHandler: function(form) {
            ajaxSubmit("sideLogin",loginCallback);
        }
    });
    
    $("#register").validate({
 
        messages: {
            email:'Diese Emailadresse ist nicht korrekt.',
            forename: "Dieses Feld ist ein Pflichtfeld. mind. 2 Zeichen.",
            surename: "Dieses Feld ist ein Pflichtfeld. mind. 2 Zeichen.",
            unternehmen: "Dieses Feld ist ein Pflichtfeld. mind. 2 Zeichen.",
            maxlength: jQuery.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),
            minlength: jQuery.validator.format("Geben Sie bitte mindestens {0} Zeichen ein.")
        },
        rules: {
            surename: {
                required: true,
                minlength: 2
            },
            forename: {
                required: true,
                minlength: 2
            },
            unternehmen: {
                required: true,
                minlength: 2
            }
        },
        submitHandler: function(form) {
            ajaxSubmit("register",registerCallback);
        }
    });

});

/**
 * After login
 */
function loginCallback(parameters) {
    // Magic
    location.reload();
}



function ajaxSubmit(formID, callback) {
    
    
    // Jquery Dialog wird immer am ende von Body eingefügt
    // Dieser Script führt der Form angeklickte Werte wieder zu.
    $('div.nDialog input[type="checkbox"]:checked').each(

        function () {
            $('#'+formID).append('<input type="hidden" name="themen[]" value="'+$(this).val()+'" />');
        }
        );

    var url = $('#'+formID).attr("action");
    if (url == '') {
        alert('Form has no action attribute!');
    }

    var form = $('#'+formID).serialize();

    $.ajax({
        type: 'POST',
        url: url,
        data: form,
        success: function(data) {
            if(callback)
                callback(data);
        },
        error: function(data) {
            alert('Fehler');
        }
    }); 
}


function registerCallback(data) {
    location.reload();
}

function contactMailSent(data) {
    $(".contactNotSent").fadeOut('fast', function(){
        $(".contactSuccess").fadeIn('fast');
        $(".modalContactFooter input.bluesubmit").fadeOut('fast');
    });
}

