
/* mulefi.js
 * $LastChangedDate: 2009-09-07 15:24:08 +0200 (Mon, 07 Sep 2009) $
 * $Rev: 18057 $
 * $Author: rose $
 */
// lia.js initialisieren
if (typeof(base) === 'undefined') {
    var error_msg = 'base-Variable nicht gesetzt!';
    alert(error_msg);
    throw error_msg;
}
var se = document.createElement('script');
se.src = base + 'js/lia.js';
document.getElementsByTagName('head')[0].appendChild(se);

lia = false;

// go, go, go!
function lia_go(){
    lia = new lia_init('mulefi.de', '$Rev: 0 $');
    
    $().ready(function(){
        // JAVASCRIPT-FEATURES ...................................................... */
        
        if ($('#nav_search_tabs').length) {
            $("#nav_search_tabs").tabs("fieldset.tab").history();
            if ($('#aktiverSuchTab').length) {
                $('.tab').hide();
                $('#nav_search_tabs a').removeClass('current');
                
                $('#tab_' + $('#aktiverSuchTab').attr('value')).show();
                
                $('.tab_' + $('#aktiverSuchTab').attr('value') + ' a').addClass('current');
                
            }
        }
        
        lia.external_links();
        lia.dummy_links();
        
        // Shadowbox ................................................................ */
        if (typeof(Shadowbox) === 'object') {
            if ($('#imgs_auswertung').length) {
                //lia.muh();
                Shadowbox.init({                    //handleOversize: 'drag'
                });
            }
            else {
                Shadowbox.init();
            }
        }
        
        // SPEZIELLE SEITEN/ELEMENTE ................................................ */
        if ($('.search_teacher').length) {
            // Instrumenten-Suchfeld
            $("#instrument").autocomplete('ajax/search_form', {
                delay: 5,
                //autoFill: true,
                dataType: 'json',
                matchContains: false,
                parse: function(instrumente){
                    return $.map(instrumente, function(instrument){
                        // TODO: Warum muss hier noch ein Array erzeugt werden? 
                        instrument = [instrument];
                        return {
                            data: instrument,
                            value: instrument,
                            result: instrument
                        };
                    });
                }                // TODO: Liste ggf. bereits bei eingegebenen Ort beschränken? 
                ,
                extraParams: {
                    ajax: true,
                    instrument: function(){
                        return $("#instrument").val();
                    }
                }
            });
            
            // Ort-Suchfeld
            $("#ort").autocomplete('ajax/search_form', {
                delay: 5,
                dataType: 'json',
                matchContains: false,
                parse: function(orte){
                    return $.map(orte, function(ort){
                        ort = [ort];
                        return {
                            data: ort,
                            value: ort,
                            result: ort
                        };
                    });
                },
                extraParams: {
                    ajax: true,
                    ort: function(){
                        return $("#ort").val();
                    }
                }
            });
            
            // Hauptfach-Suchfeld
            $("#hauptfach").autocomplete('ajax/search_form', {
                delay: 5,
                dataType: 'json',
                matchContains: false,
                parse: function(instrumente){
                    return $.map(instrumente, function(instrument){
                        // TODO: Warum muss hier noch ein Array erzeugt werden? 
                        instrument = [instrument];
                        return {
                            data: instrument,
                            value: instrument,
                            result: instrument
                        };
                    });
                },
                extraParams: {
                    ajax: true,
                    instrument: function(){
                        return $("#hauptfach").val();
                    }
                }
            });
            
            // Vorgaben/Hilfen für die beiden Inputs
            $('#instrument').data('_default', 'Geben Sie Stichwörter ein (z.B. Oboe)');
            $('#ort').data('_default', 'z.B. Detmold oder 32756');
            $('#hauptfach').data('_default', 'Geben Sie Stichwörter ein (z.B. Oboe)');
            
            $('#instrument, #ort, #hauptfach, #standort').listenForChange();
            
            // Beim 1. Klicken/Focus die Vorgaben/Hilfen-Strings entfernen
            $('#instrument, #ort, #hauptfach').focus(function(){
                if ($(this).attr('value') === $(this).data('_default')) {
                    $(this).attr('value', '');
                }
            }).change(function() // Vorgaben/Hilfen ggf. beim Focus-Verlust wieder einsetzen
            {
                if ($(this).val() === '') {
                    $(this).val($(this).data('_default'));
                }
            });
            
            // Formular nur absenden, wenn beide Eingaben gemacht wurden
            $('#search_teacher_by_city').submit(function(){
                var go = false;
                var invalid = false;
                
                var fields = $('#instrument, #ort');
                
                fields.each(function(){
                    if ($(this).attr('value') !== $(this).data('_default') &&
                    $(this).attr('value') !== '') {
                       go =true;
                    }
                    else {
                        $(this).fadeOut(function(){
                            $(this).fadeIn(function(){
                                //invalid.focus();
                            });
                        });
                        
                        lia.log($(this));
                        invalid = $(this);
                    }
                });
                
                lia.log('go = ' + go);
                
                return go;
            });
            
            // Hochschul-Formular nur absenden, wenn beide Eingaben gemacht wurden
            $('#search_teacher_by_school').submit(function(){
                var go = false;
                var invalid = false;
                
                var fields = $('#standort, #hauptfach');
                
                fields.each(function(){
                    //lia.log($(this).attr('value'));
                    if ($(this).attr('value') === '' ||
                    $(this).attr('value') === '0' ||
                    (typeof($(this).data('_default')) === 'string' && ($(this).attr('value') === $(this).data('_default')))) {
                        $(this).fadeOut(function(){
                            $(this).fadeIn(function(){
                                //invalid.focus();
                            });
                        });
                        
                        invalid = $(this);
                    }
                    else {
                      go = true;
                    }
                });
                
                //lia.log('go = ' + go);
                
                return go;
            });
        }
        
        if ($('#template_home').length) {
            $('#href_search').click(function(){
                $("#search_teacher").submit();
                
                return false;
            });
            
            $('ul.user_actions li.left a').click(function(){
                /*$.scrollTo('#search_teacher', 200, {
                    onAfter: function(){
                        $('#search_teacher').fadeOut().fadeIn(function(){
                            $('#instrument').focus();
                        });
                    },
                    easing: 'linear'
                });
                */
                return false;
            });
        }
        
        if ($('#template_musiklehrer').length) {
            $('#content a.icon, #content a.show_vk').click(function(){
                var url = _base + $(this).attr('href') + 'meso/?' + 1 * new Date();
                //console.log(url);
                
                // Overlay + Rahmen anzeigen...
                $('#teacher_details_overlay').css('height', $('body').height()).css('width', $('body').width());
                
                $('#teacher_details_overlay').fadeIn('normal', function(){
                    $(this).addClass('active');
                    //alert('foo');
                    
                    var close_button = $('#close_teacher_details');
                    $('#teacher_details2').remove();
                    $('#teacher_details').html('').clone().prependTo('body').attr('id','teacher_details2');
                    
                    $('#teacher_details2').fadeIn('normal', function(){
                        $('html').toggleClass('teacher_details_popup');
                        
                        $(this).addClass('active');
                        
                        insert_loading($(this), 'teacher_details_loading');
                        //console.log(close_button);
                        
                        $(this).load(url, {}, function(responseText, textStatus, XMLHttpRequest){
                            remove_loading('teacher_details_loading');
                            close_button.prependTo($(this));
                            close_button.click(function(){
                                $('#teacher_details_overlay, #teacher_details, #teacher_details2').fadeOut('normal', function(){
                                    $('html').removeClass('teacher_details_popup');
                                    $(this).removeClass('active');
                                });
                                
                                return false;
                            });
                            
                            lia.external_links();
                            lia.dummy_links();
                        });
                    });
                });
                
                return false;
            });
            
            // Debug
            //$('#teachers li:first a.icon').click();
        }
        
        // Registrierungsformular
        /*if ($('#template_registrierung').length)
         {
         $("#reg").validate(
         {
         debug: true,
         errorContainer: "#form_errors",
         errorLabelContainer: "#form_errors",
         errorClass: "invalid"
         });
         
         $('#reg_mobil').rules('add',
         {
         required: function(elem)
         {
         $('#reg_festnetz').valid();
         //console.log($('#reg_festnetz:blank').length === 0);
         return ($('#reg_festnetz:blank').length === 0);
         }
         });
         
         $('#reg_festnetz').rules('add',
         {
         required: function(elem)
         {
         console.log($('#reg_mobil:blank').length);
         return ($('#reg_mobil:blank').length === 0);
         }
         });
         }*/
        if ($('#template_musiklehrer_empfehlen').length) {
            $('#label_add_msg').click(function(){
                $('#msg').toggleClass('shown');
            });
            
            if ($('#add_msg').attr('checked') === true) {
                $('#label_add_msg').click();
            }
        }
    });
}


function insert_loading(elem, id){
    var img = '<img id="' + id + '" src="' + _base + 'images/img_ajax_loading.gif" alt=""/>';
    elem.append(img);
}

function remove_loading(id){
    $('#' + id).remove();
}
function lia_load(){
    var timeout_id = null;
    
    //console.log(typeof lia);
    if (typeof lia_init === 'undefined') {
        console.log('lia_load');
        timeout_id = window.setTimeout(lia_load, 100);
    }
    else {
        window.clearTimeout(timeout_id);
        //console.log('lia verfügbar');
        lia_go();
    }
}

lia_load();

