﻿var arrMonths = ['Januar', 'Februar', 'März', 'April', 'Mai', 'Juni', 'Juli', 'August', 'September', 'Oktober', 'November', 'Dezember'];

function getAbsPos(o, p)
{
	var i = 0;
	while (o != null)
	{
		i += o["offset" + p];
		o = o.offsetParent;
	}
	return i;
}
function getAbsPosWithLevels(o, p, l)
{
	var i = 0;
	while ((o != null) && (l --))
	{
		i += o["offset" + p];
		o = o.offsetParent;
	}
	return i;
}
//simple class for point
function Point(x, y)
{
	this.x		= x;
	this.y		= y;
}
function rectangle()
{
  this.top		= 0;
  this.bottom	= 0;
  this.left		= 0;
  this.right	= 0;
  
  //class member - checks whether given point is in current rectangle
  this.IsPointIn = function (point)
  {
	var is_in_rectangle = true;
	if ((point.x > this.right + 5) || (point.x < this.left - 5) || (point.y > this.bottom + 5) || (point.y < this.top - 5))
	{
		is_in_rectangle = false;
	}
	
	return is_in_rectangle;
  }
}
function blockWithLoader()
{
    $.blockUI({ message: $('#ajaxLoader') });
}
function unBlockWithLoader()
{
    $.unblockUI();
    $('#ajaxLoader').hide();
}
function truncateText(sText, nCount)
{
    if ((sText == null) || (sText.length <= nCount + 4))
    {
        return sText;
    }

    return sText.substr(0, nCount) + "...";
}
function ExpandOffer(elem)
{
    var blnShow = true;
    if ($(elem).parent().attr("class").indexOf("current_angebot") >= 0)
    {
        blnShow = false;
    }
    
    $("li.col6").show();
    $(".long_description").hide();
    $(".details_buttons").hide();
    
    $(".current_angebot").each(function(){
        $(this).removeClass("current_angebot");
        $(this).css("height", 20);
    });
    
    $(".pfeil3").each(function(){
        $(this).attr("src", $(this).attr("src").replace("pfeil5", "pfeil3"));
    });
    
    if (blnShow)
    {
        $(elem).parent().find("li.col6").hide();
        
        var prog_id = $(elem).parent().find(".long_description").attr("value");
        
        var prog_descr = $("DIV#prog_descr_" + prog_id).html();
        
        $(elem).parent().addClass("current_angebot");
        $(elem).parent().find(".long_description").show();
        $(elem).parent().find(".long_description").html(prog_descr);
        $(elem).parent().find(".details_buttons").show();
        $(elem).parent().find("li.col2 b").css("text-decoration", "none");
        $(elem).parent().find(".pfeil3").attr("src", $(elem).parent().find(".pfeil3").attr("src").replace("pfeil3_on", "pfeil5").replace("pfeil3", "pfeil5"));
        var nHeight = $(elem).parent().find(".long_description").get(0)["offsetHeight"];
        $(elem).parent().css("height", 25 + nHeight);
    }
    else
    {
        $(elem).parent().find("li.col6").show();
    }
    
    $(elem).parents(".block_result_item").find(".block_result_item_bottom_border").hide().show();
}
//DD functionality
function selectElement(elem, ctrlId, functionName)
{
    $("#divOut_" + ctrlId).find(".spanDropDownSelectedValue").html($(elem).text());

    $("#" + ctrlId).hide();
    
    eval("bPanelDropDownClose_" + ctrlId + " = false;");
    
    $("#divOut_" + ctrlId).find(".spanDropDownSelectedValue").attr("value", $(elem).attr("value"));
    
    if ((functionName != null) && (functionName != ''))
    {
        eval(functionName + "('" + $(elem).text() + "', '" + $(elem).attr("value") + "');");
    }
    
    return false;
}
var bPanelDropDownClose = false;
$(document).ready(function()
{
    $("body").click(function()
    {
        closeAllDropDowns();
    });
});
function closeAllDropDowns()
{
    if (!bPanelDropDownClose)
    {
        $(".dynamicDropDown").each(function()
        {
            if ($(this).css("display") != 'none')
            {
                $(".dynamicDropDown").hide();
                eval("bPanelDropDownClose_" + $(this).attr("id") + " = false;");
                bPanelDropDownClose = false;
            }
        });
        $(".dynamicDropDownCal").each(function()
        {
            if ($(this).css("display") != 'none')
            {
                $(".dynamicDropDownCal").hide();
                eval("bPanelDropDownClose_" + $(this).attr("id") + " = false;");
                bPanelDropDownClose = false;
            }
        });
    }
    bPanelDropDownClose = false;
}
function ddClick(elem)
{
    //1st close all dropdowns
    closeAllDropDowns();
    
    OpenDropDown($(elem).parents("div.divDropDownOuter").attr("dd_id"));
    return false;
}
function OpenDropDown(ctrlId)
{
    eval("bPanelDropDownClose = bPanelDropDownClose_" + ctrlId + ";")
    if (!bPanelDropDownClose)
    {
        var ddBackground = $("#divOut_" + ctrlId).find(".ddBackground").get(0);
        
        var nLeft = getAbsPos(ddBackground, "Left");
        var nTop = getAbsPos(ddBackground, "Top") + ddBackground["offsetHeight"] - 2;
        
        $("#" + ctrlId).css("left", nLeft + "px");
        $("#" + ctrlId).css("top", nTop + "px");

        $("#" + ctrlId).show();
        eval("bPanelDropDownClose_" + ctrlId + " = true;");
        bPanelDropDownClose = true;
    }
    else
    {
        $("#" + ctrlId).hide();
        eval("bPanelDropDownClose_" + ctrlId + " = false;");
        bPanelDropDownClose = false;
    }
}
var sSelectedValue, elemDefaultA;
function setDropDownValue(dropdown_id, sValue)
{
    var elemToSelect = $("div#" + dropdown_id).find("A[@value=" + sValue + "]").get(0);
    selectElement(elemToSelect, dropdown_id, null);
}
function angebotMerken(elem, hotel_id)
{
    var sMerkzettel = $.cookie("merkzettel");
    if ((sMerkzettel == null) || (sMerkzettel == ''))
    {
        $.cookie("merkzettel", hotel_id, {expires: 360, domain: "kur-atlas.de", path: "/"});
        $(elem).text("Angebot gemerkt");
        $(elem).addClass("pfeil_gemerkt");
        $(elem).attr("onclick", "return false");
    }
    else
    {
        var arrIds = (sMerkzettel + ',').split(',');
        for (var i = 0; i < arrIds.length; i ++)
        {
            if (arrIds[i] == hotel_id)
            {
                return;
            }
        }
        
        sMerkzettel += "," + hotel_id;
        $.cookie("merkzettel", sMerkzettel, {expires: 360, domain: "kur-atlas.de", path: "/"});
        $(elem).addClass("pfeil_gemerkt");
        $(elem).attr("onclick", "return false");
    }
    
    var nMZCnt = parseInt($("#spMZCnt").text().replace("(", "").replace(")", ""));
    
    if (nMZCnt == 0)
    {
        $("#spMZCnt").parent("a").attr("onclick", "return true;");
        $("#spMZCnt").parent("a").attr("href", "SearchResults.aspx?" + Math.random() + "&sr=1#merkzettel=1");
        $("#itemMerkzettel").addClass("merkzettel");
        $("#itemMerkzettel").removeClass("nomerkzettel");
        $("#itemMerkzettel").find("img").attr("src", "/ibe/i/ico_merkzettel_on.png");
    }
    
    nMZCnt ++;
    $("#spMZCnt").text("(" + nMZCnt + ")");
}
function angebotMerken2(elem, hotel_id)
{
    var sMerkzettel = $.cookie("merkzettel");
    if ((sMerkzettel == null) || (sMerkzettel == ''))
    {
        $.cookie("merkzettel", hotel_id, {expires: 360, domain: "kur-atlas.de", path: "/"});
        $(elem).hide();
        $(elem).next().show();
    }
    else
    {
        var arrIds = (sMerkzettel + ',').split(',');
        for (var i = 0; i < arrIds.length; i ++)
        {
            if (arrIds[i] == hotel_id)
            {
                return;
            }
        }
        
        sMerkzettel += "," + hotel_id;
        $.cookie("merkzettel", sMerkzettel, {expires: 360, domain: "kur-atlas.de", path: "/"});
        $(elem).hide();
        $(elem).next().show();
    }
    
    var sMZCnt = $("#spMZCnt").text();
    var bBrackets = false;
    
    if (sMZCnt.indexOf('(') >= 0)
    {
        bBrackets = true;
    }
    
    var nMZCnt = parseInt(sMZCnt.replace('(', '').replace(')', ''));
    
    if (nMZCnt == 0)
    {
        $("#spMZCnt").parent("a").attr("onclick", "return true;");
        $("#spMZCnt").parent("a").attr("href", "http://ibe.kur-atlas.de/ibe/SearchResults.aspx?" + Math.random() + "&sr=1#merkzettel=1");
        $("#itemMerkzettel").addClass("merkzettel");
        $("#itemMerkzettel").removeClass("nomerkzettel");
        $("#itemMerkzettel").find("img").attr("src", "/ibe/i/ico_merkzettel_on.png");
    }
    
    nMZCnt ++;
    $("#spMZCnt").text(nMZCnt);
    if (bBrackets)
    {
        $("#spMZCnt").text('(' + $("#spMZCnt").text() + ')');
    }
}
function angebotAusMerkzettelLoeschen(elem, hotel_id)
{
    var sMerkzettel = $.cookie("merkzettel");

    if ((sMerkzettel == null) || (sMerkzettel == ''))
    {
        return false;
    }
    else
    {
        var arrIds = (sMerkzettel + ',').split(',');
        var nIndex = -1;
        for (var i = 0; i < arrIds.length; i ++)
        {
            if (arrIds[i] == hotel_id)
            {
                nIndex = i;
                break;
            }
        }
        
        if (nIndex >= 0)
        {
            arrIds.splice(nIndex, 1);
            sMerkzettel = arrIds.join(',');
            
            if (sMerkzettel.lastIndexOf(',') == sMerkzettel.length - 1)
            {
                sMerkzettel = sMerkzettel.substr(0, sMerkzettel.length - 1);
            }
            
            $.cookie("merkzettel", sMerkzettel, {expires: 360, domain: "kur-atlas.de", path: "/"});

            decreaseMerkzettel();
            
            if (sMerkzettel.length > 0)
            {
                searchQuery.set("merkzettel", "1");
            }
            else
            {
                searchQuery.remove("merkzettel");
            }
            SearchOffers(false);
        }
    }
    
    return false;
}
function angebotAusMerkzettelLoeschen2(elem, hotel_id)
{
    var sMerkzettel = $.cookie("merkzettel");

    if ((sMerkzettel == null) || (sMerkzettel == ''))
    {
        return false;
    }
    else
    {
        var arrIds = (sMerkzettel + ',').split(',');
        var nIndex = -1;
        for (var i = 0; i < arrIds.length; i ++)
        {
            if (arrIds[i] == hotel_id)
            {
                nIndex = i;
                break;
            }
        }
        
        if (nIndex >= 0)
        {
            arrIds.splice(nIndex, 1);
            sMerkzettel = arrIds.join(',');
            
            if (sMerkzettel.lastIndexOf(',') == sMerkzettel.length - 1)
            {
                sMerkzettel = sMerkzettel.substr(0, sMerkzettel.length - 1);
            }
            $.cookie("merkzettel", sMerkzettel, {expires: 360, domain: "kur-atlas.de", path: "/"});
            
            decreaseMerkzettel();       
            
            $(elem).hide();
            $(elem).prev().show();
        }
    }
    
    return false;
}
function decreaseMerkzettel()
{
    var sMZCnt = $("#spMZCnt").text();
    var bBrackets = false;
    
    if (sMZCnt.indexOf('(') >= 0)
    {
        bBrackets = true;
    }
    
    var nMZCnt = parseInt(sMZCnt.replace('(', '').replace(')', ''));
    if (nMZCnt > 0)
    {
        nMZCnt --;
        $("#spMZCnt").text(nMZCnt);
        if (bBrackets)
        {
            $("#spMZCnt").text('(' + $("#spMZCnt").text() + ')');
        }
    }
    
    if (nMZCnt == 0)
    {
        $("#spMZCnt").parent("a").attr("onclick", "return false;");
        $("#itemMerkzettel").removeClass("merkzettel");
        $("#itemMerkzettel").addClass("nomerkzettel");
        $("#itemMerkzettel").find("img").attr("src", "/ibe/i/ico_merkzettel.png");
    } 
}
function checkMerkzettel()
{
    var sMerkzettel = $.cookie("merkzettel");
    
	if (jQuery('div.nomerkzettel a').size() > 0)
	{
		if (jQuery('div.nomerkzettel').attr('id') != 'itemMerkzettel')
		{
		    jQuery('div.nomerkzettel').attr('id', 'itemMerkzettel');
			jQuery('div.nomerkzettel a').attr('id', 'mzlink');			
			
            if ((sMerkzettel != null) && (sMerkzettel != ''))
            {
                jQuery('div.nomerkzettel a').html(jQuery('div.nomerkzettel a').html().replace(/\(.*\)/g, '')+' <span id="spMZCnt">(' + unescape(sMerkzettel).split(',').length + ')</span>');
				jQuery('div.nomerkzettel').addClass('merkzettel');
				jQuery('div.nomerkzettel').removeClass('nomerkzettel');
				$("#itemMerkzettel").find("img").attr("src", "/ibe/i/ico_merkzettel_on.png");
            }
            else
            {
                jQuery('div.nomerkzettel a').html(jQuery('div.nomerkzettel a').html()+' <span id="spMZCnt">(0)</span>');
            }
		}
	}
	else if (jQuery('div.merkzettel a').size() > 0)
	{
		if (jQuery('div.merkzettel').attr('id') != 'itemMerkzettel')
		{
		    jQuery('div.merkzettel').attr('id', 'itemMerkzettel');
			jQuery('div.merkzettel a').attr('id', 'mzlink');
			
            if ((sMerkzettel != null) && (sMerkzettel != ''))
            {
                jQuery('div.merkzettel a').html(jQuery('div.merkzettel a').html().replace(/\(.*\)/g, '')+' <span id="spMZCnt">(' + unescape(arrCookie[1]).split(',').length + ')</span>');
                $("#itemMerkzettel").find("img").attr("src", "/ibe/i/ico_merkzettel_on.png");
            }
            else
            {
                jQuery('div.nomerkzettel a').html(jQuery('div.nomerkzettel a').html()+' <span id="spMZCnt">(0)</span>');
            }
		}
	}
}
function removeAll(querystring)
{
    querystring.remove('pnlOther');
    querystring.remove('pnlAnwendungen');
    querystring.remove('freetext');
    querystring.remove('pnlZiel');
    querystring.remove('pnlDauer');
    querystring.remove('preis');
    querystring.remove('stars');
    querystring.remove('orderby');
}
function reloadSearchResults()
{
    location.href = "/ibe/SearchResults.aspx?" + Math.random() + "#" + searchQuery.toString();
}
function getCalendarValue(calendarId)
{
    var dateVal = $('#' + calendarId).dpGetSelected();
    if (dateVal == "NaN")
    {
        return "";
    }
    if ((dateVal != null) && (dateVal[0] != null))
    {
        dateVal = dateVal[0];
    }
    
    var date = new Date(dateVal);
    
    var sDay = date.getDate() + "";
    sDay = sDay.length == 1 ? "0" + sDay : sDay;
    
    var nMonth = date.getMonth() + 1;
    var sMonth = nMonth + "";
    sMonth = sMonth.length == 1 ? "0" + sMonth : sMonth;
    
    var sDate = sDay + "/" + sMonth + "/" + date.getFullYear();
    
    if (sDate == "01/01/1970")
    {
        return "";
    }
    
    return sDate;
}
function fCancelCalFrom()
{
    $('#datepickerFrom').dpSetSelected("01/01/1970");   
    $("#divOut_ddCalFrom").find(".spanDropDownSelectedValue").html("beliebig");
    
    var sValue = $("#divOut_dauer").find(".spanDropDownSelectedValue").attr("value");    
    sValue += "," + getCalendarValue("datepickerFrom");
    sValue += "," + getCalendarValue("datepickerTo");
    
    searchQuery.set("handler", "pnlDauer");
    searchQuery.set("pnlDauer", sValue);
    
    $("#divAlternatives").hide();

    window.setTimeout("SearchOffersAsync()", 1);
    
    return false;
}
function fCancelCalTo()
{
    $('#datepickerTo').dpSetSelected("01/01/1970");   
    $("#divOut_ddCalTo").find(".spanDropDownSelectedValue").html("beliebig");
    
    var sValue = $("#divOut_dauer").find(".spanDropDownSelectedValue").attr("value");    
    sValue += "," + getCalendarValue("datepickerFrom");
    sValue += "," + getCalendarValue("datepickerTo");
    
    searchQuery.set("handler", "pnlDauer");
    searchQuery.set("pnlDauer", sValue);
    
    $("#divAlternatives").hide();
    
    window.setTimeout("SearchOffersAsync()", 1);
    
    return false;
}

function MoveDateTo() {
    var sDauer = getDauer();

    var calDateFrom = $('#datepickerFrom').dpGetSelected();
    if ((calDateFrom != null) && (calDateFrom[0] != null)) {
        calDateFrom = calDateFrom[0];
    }
    
    if ((calDateFrom == null) || (calDateFrom == '') || (calDateFrom * 1 < 0)) {
        return;
    }
    
    var dateFrom = new Date(calDateFrom);
    dateFrom.setDate(dateFrom.getDate() + (sDauer * 1));

    m_dtTo = dateFrom;

    $('#datepickerTo').html("");
    $('#datepickerTo').datePicker({
        inline: true,
        showYearNavigation: false,
        month: dateFrom.getMonth(),
        year: dateFrom.getFullYear(),
        renderCallback: toDateCalendarRenderCallback
    });

    if (getCalendarDate('#datepickerTo') == "") {
        return;
    }

    var calDateTo = $('#datepickerTo').dpGetSelected();
    if ((calDateTo != null) && (calDateTo[0] != null)) {
        calDateTo = calDateTo[0];
    }
    var dateTo = new Date(calDateTo);

    if (dateTo < dateFrom) {
        var nMonth = dateFrom.getMonth() + 1;
        var sDay = dateFrom.getDate() + "";
        sDay = sDay.length == 1 ? "0" + sDay : sDay;
        var sMonth = nMonth + "";
        sMonth = sMonth.length == 1 ? "0" + sMonth : sMonth;

        var sDate = sDay + "/" + sMonth + "/" + dateFrom.getFullYear();

        $('#datepickerTo').dpSetSelected(sDate);

        //correct dropdowns selected value
        SetDropDownSelectedValue()
    }
}
function getCalendarDate(sCalendarId) {
    var calDate = $(sCalendarId).dpGetSelected();
    if ((calDate != null) && (calDate[0] != null)) {
        calDate = calDate[0];
    }
    var date = new Date(calDate);

    var sDay = date.getDate() + "";
    sDay = sDay.length == 1 ? "0" + sDay : sDay;

    var nMonth = date.getMonth() + 1;
    var sMonth = nMonth + "";
    sMonth = sMonth.length == 1 ? "0" + sMonth : sMonth;

    var sDate = sDay + "/" + sMonth + "/" + date.getFullYear();

    if (sDate == "01/01/1970") {
        return "";
    }

    return sDate;
}

function fromDateCalendarRenderCallback($td, thisDate, month, year) {
    if (thisDate < new Date()) {
        $td.addClass("disabled");
    }
}

function toDateCalendarRenderCallback($td, thisDate, month, year) {
    if (thisDate < m_dtTo) {
        $td.addClass("disabled");
    }
}