
var map; //gmap
var dtOptions = {
		showOn: "both",
		buttonImage: "/css/ui-themes/ma-v1/images/kalender.gif",
		buttonImageOnly: true, 
		minDate: new Date(),
		/*dateFormat: "dd.mm.yy",
		dayNamesMin: ['So', 'Mo', 'Di', 'Mi', 'Do', 'Fr', 'Sa'],*/
		firstDay: 1/*,
		dayNames: ['Sonntag', 'Montag', 'Dienstag', 'Mittwoch', 'Donnerstag', 'Freitag', 'Samstag'],
		monthNames: ['Januar', 'Februar', 'M&auml;rz', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember']*/
};

$(document).ready(function () {
    $('.menuVertikal ul li a').mouseover(function () {
        if (!$(this).hasClass('nohover')) {
            $(this).parent().css('background-color', '#B4C4F3');
        }
    }).mouseout(function () {
        $(this).parent().css('background-color', '');
    });

    $('.menuVertikal ul li:not(.trenner)')
        .mouseover(function () {
            if (!$(this).hasClass('nolink') && !$(this).hasClass('nohover')) {
                $(this).css({ 'background-color': '#B4C4F3', 'cursor': 'pointer' });
                $('a', this).css({ 'text-decoration': 'underline', 'color': 'Black' });
            }
        })
        .mouseout(function () {
            $(this).css('background-color', '');
            $('a', this).css({ 'text-decoration': '', 'color': '' });
        })
        .click(function () {
            if (!$(this).hasClass('nolink')) {
                location.href = $($(this).children('a')[0]).attr('href');
            }
        });

    /* if($('.diaschau').length > 0){
    $('.diaschau').cycle({ fx: 'fade', speed: 4000 });        
    }*/

    var checkDatepicker = function () {
        var inputBeginn = $(this).closest('div').find('input.datum.beginn');
        var inputEnde = $(this).closest('div').find('input.datum.ende');
        var beginn = inputBeginn.datepicker('getDate');
        var ende = inputEnde.datepicker('getDate');
        inputEnde.datepicker('option', 'minDate', inputBeginn.val());
    }

    $('input.datum:not(.beginn):not(.ende)').datepicker(dtOptions);
    $('input.datum.beginn').change(checkDatepicker);

    $('input.datum.beginn').datepicker($.extend(dtOptions, { minDate: null, onSelect: checkDatepicker }));
    $('input.datum.ende').change(checkDatepicker);

    $('input.datum.ende').datepicker(dtOptions);
    $('input.datum.beginn').each(checkDatepicker);

    try {
        //$('input.datum.beginn').($.datepicker.regional[AKT_SPRACH_CODE]);
        //$('input.datum.ende').($.datepicker.regional[AKT_SPRACH_CODE]);
    } catch (e) { }

    var karte_src = $('#karte').attr('src');
    $('#imagmap_karte area').hover(function () {
        var name = $(this).attr('data-name');
        if (name) {
            var src = karte_src.replace('.gif', '_' + name + '.gif');
        }
        $('#karte').attr('src', src);
    }, function () {
        $('#karte').attr('src', karte_src);
    });

    $('.infodrucken').click(function () {
        $('.infotext').jqprint();
    });
    $('.agbdrucken').click(function () {
        $('.agbtext').jqprint();
    });
   
    $('.buchungdrucken').click(function () {
        $('.buchungtext').jqprint();
    });

    $('.sprachen a img')
        .mouseover(function () { $(this).parent().removeClass('langnotact'); })
        .mouseout(function () { $(this).parent().addClass('langnotact'); });
    $('.langact').click(function (e) { e.preventDefault(); }).removeAttr('href');
    /*
    dtOptions.onSelect = function(dateText, dp) { dponselectFunc(dateText, dp, ['anreisetagFilter', 'abreisetagFilter']); }
    $('input.anreisetagFilter, input.abreisetagFilter').datepicker( dtOptions );
    
    dtOptions.onSelect = function(dateText, dp) { dponselectFunc(dateText, dp, ['anreisetagBa', 'abreisetagBa']); }
    $('input.anreisetagBa, input.abreisetagBa').datepicker( dtOptions );    */
});
/*
function dponselectFunc(dateText, dp, klassen) {
        var datumVon, datumBis;
        if($(dp.input).hasClass(klassen[0])){
            datumVon = new Date(dp.selectedYear, dp.selectedMonth, dp.selectedDay);
            datumBis = $('.' + klassen[1]).datepicker('getDate');
            
            if(datumVon && datumBis && datumVon.getTime() > datumBis.getTime()){
                $('.' + klassen[1]).datepicker('setDate', datumVon);
            }                                     
        }
        else if($(dp.input).hasClass(klassen[1])){
            datumVon = $('.' + klassen[0]).datepicker('getDate');
            datumBis = new Date(dp.selectedYear, dp.selectedMonth, dp.selectedDay);   
            
            if(datumVon && datumBis && datumBis.getTime() < datumVon.getTime()){
                $('.' + klassen[1]).datepicker('setDate', datumVon);
            }                        
        }
}
*/
/**
* google maps onunload-Funktion
* @param
* @addon
*/
/*function gmapunload(){
    if(map && (typeof GUnload == 'function')){
        GUnload();
    }
}*/

/**
* Callback bei AJAX-Error
* Rollen: Alle
* @param {XMLHttpRequest} XMLHttpRequest
* @param {String} textStatus
* @param {String} errorThrown
* @param {Function} funcAufrufen - Anonyme Funktion die im Anschluß aufgerufen werden soll
* @param {Array} funcParam - Zusätzliche Parameter die der anonymen Funktion übergeben werden
* @return
*/
function ajax_error(XMLHttpRequest, textStatus, errorThrown, funcAufrufen, funcParam){
    /*if(textStatus === 'timeout'){
        nachrichtenZentrale(konfig_fehlernachricht_server_timeout, 'fehler', false);
    }
    else{
        nachrichtenZentrale(konfig_fehlernachricht_standard, 'fehler', false);
    }
    $('#lademaske').css('display', 'none');*/
    if(funcAufrufen != null){            
        if(typeof funcAufrufen == 'function'){
            funcAufrufen(XMLHttpRequest, textStatus, errorThrown, funcParam);
        }
        else if(typeof funcAufrufen == 'String'){
            window[fehlerFunc](XMLHttpRequest, textStatus, errorThrown, funcParam);
        }
    }    
}

/**
* Callback bei AJAX-Success
* Rollen: Alle
* @param {Object} response
* @param {String} textStatus
* @param {Function} funcAufrufen - Anonyme Funktion die im Anschluß aufgerufen werden soll
* @param {Array} funcParam - Zusätzliche Parameter die der anonymen Funktion übergeben werden
* @return
*/
function ajax_success(response, statusText, funcAufrufen, funcParam){
    /*if(response.sessionInvalid){
        nachrichtenZentrale(response.nachricht,'fehler',null);
    }
    else{*/
        if(funcAufrufen != null){
            if(typeof funcAufrufen == 'function'){
                funcAufrufen(response, statusText, funcParam);
            }
            else if(typeof funcAufrufen == 'string'){
                window[funcAufrufen](response, statusText, funcParam);
            }
        }
    //}
}

/**
* Zentrale Schnittstelle für alle AJAX-Requests
* Rollen: Alle
* @param {String} seite - Seitenname an die der Aufruf gehen soll
* @param {Array} daten - Parameter die an den Server geschickt werden
* @param {String} datenTyp - Datentyp für die Daten die vom Server zurückgeschickt werden (Konstanten stehen in vdfa.konfig.js)
* @param {Function} erfolgFunc - Funktion die im Erfolgsfall ausgeführt werden soll
* @param {Function} fehlerFunc - Funktion die im Fehlerfall ausgeführt werden soll
* @param {Array} erfolgFuncParam - Array mit zusätzlichen Parametern für die erfolgFunc
* @param {Array} fehlerFuncParam - Array mit zusätzlichen Parametern für die fehlerFunc
* @return
*/
function ajax_zentrale(seite, daten, datenTyp, erfolgFunc, fehlerFunc, erfolgFuncParam, fehlerFuncParam){
    $.ajax({
       url: seite,
       data: daten,
       dataType: datenTyp,     
	   type: 'POST',
	   timeout: 60000, 
       success: function(response, statusText){
            ajax_success(response, statusText, erfolgFunc, erfolgFuncParam);
       },
       error: function(XMLHttpRequest, textStatus, errorThrown){
            ajax_error(XMLHttpRequest, textStatus, errorThrown, fehlerFunc, fehlerFuncParam);
       }
     });    
}

/**
* htmlEncode Funktion für String
* @param
* @addon
*/
String.prototype.htmlEncode = function() {
    return this.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;");
}

/**
* endsWith Funktion für String
* @param {String} str
* @addon
*/
String.prototype.endsWith = function(str) {
    return (this.match(str+"$")==str)
}
