﻿var langCookieName = null;
var curCookieName = null;
var searchCookieName = null;
var clang = null;
var url = null;
var loadedHandlers = Array();

function DoRequest(fction, params, finishFction) {
    new Ajax.Request(url + "/AjaxRequestHandler.aspx?function=" + fction + "&" + params, { method: 'POST', onSuccess: finishFction });
}

function CallLoadedHandlers() {
    for (var i = 0; i < loadedHandlers.length; i++) {
        if (loadedHandlers[i] != null) {
            loadedHandlers[i]();
        }
    }
}

function ArrayContains(data, search) {
    for (var x = 0; x < data.size(); x++) {
        if (data[x] == search) {
            return true;
        }
    }

    return false;
}

function AppendLoadedHandler(element) {
    loadedHandlers[loadedHandlers.length] = element;
}

function SetSearchParamsCacheDetailSearch(pattern, country, startday, startmonth, startyear, endday, endmonth, endyear, pricefrom, priceto, currency, category, searchfor, offersfrom, detailpage, displayMode, mapZoom, mapLat, mapLon) {
    SetSearchParamsCacheFastSearch(pattern, country, startday, startmonth, startyear, endday, endmonth, endyear);

    CreateCookie(searchCookieName + "_pricefrom", pricefrom, 1);
    CreateCookie(searchCookieName + "_priceto", priceto, 1);
    CreateCookie(searchCookieName + "_currency", currency, 1);
    CreateCookie(searchCookieName + "_category", category, 1);
    CreateCookie(searchCookieName + "_searchfor", searchfor, 1);
    CreateCookie(searchCookieName + "_offersfrom", offersfrom, 1);
    CreateCookie(searchCookieName + "_detailpage", detailpage, 1);
    CreateCookie(searchCookieName + "_displayMode", displayMode, 1);
    CreateCookie(searchCookieName + "_mapZoom", mapZoom, 1);
    CreateCookie(searchCookieName + "_mapLat", mapLat, 1);
    CreateCookie(searchCookieName + "_mapLon", mapLon, 1);
}

function SetSearchParamsCacheFastSearch(pattern, country, startday, startmonth, startyear, endday, endmonth, endyear) {
    EraseSearchParamsCache();
    
    CreateCookie(searchCookieName + "_pattern", pattern, 1);
    CreateCookie(searchCookieName + "_country", country, 1);
    CreateCookie(searchCookieName + "_startday", startday, 1);
    CreateCookie(searchCookieName + "_startmonth", startmonth, 1);
    CreateCookie(searchCookieName + "_startyear", startyear, 1);
    CreateCookie(searchCookieName + "_endday", endday, 1);
    CreateCookie(searchCookieName + "_endmonth", endmonth, 1);
    CreateCookie(searchCookieName + "_endyear", endyear, 1);
}

function EraseSearchParamsCache() {
    EraseCookie(searchCookieName + "_pattern");
    EraseCookie(searchCookieName + "_country");
    EraseCookie(searchCookieName + "_startday");
    EraseCookie(searchCookieName + "_startmonth");
    EraseCookie(searchCookieName + "_startyear");
    EraseCookie(searchCookieName + "_endday");
    EraseCookie(searchCookieName + "_endmonth");
    EraseCookie(searchCookieName + "_endyear");
    
    EraseCookie(searchCookieName + "_pricefrom");
    EraseCookie(searchCookieName + "_priceto");
    EraseCookie(searchCookieName + "_currency");
    EraseCookie(searchCookieName + "_category");
    EraseCookie(searchCookieName + "_searchfor");
    EraseCookie(searchCookieName + "_offersfrom");
    EraseCookie(searchCookieName + "_detailpage");
    EraseCookie(searchCookieName + "_rid");
}

function DefaultCurrencyChanged(noreload) {
    var cur = $("sDefaultCurrency").value;

    EraseCookie(curCookieName);
    CreateCookie(curCookieName, cur, 999);
    if(!noreload)
        window.location = document.location;
}

function SetLang(lang) {
    EraseCookie(langCookieName);
    CreateCookie(langCookieName, lang, 999);

    window.location = document.location;
}

function CreateCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
        var expires = "; expires=" + date.toGMTString();
    }
    else var expires = "";
    value = value + "";
    value = value.replace("=", "").replace(";", "");
    document.cookie = name + "=" + value + expires + "; path=/";
}

function ReadCookie(name) {
    var nameEQ = name + "=";
    var ca = document.cookie.split(';');
    for (var i = 0; i < ca.length; i++) {
        var c = ca[i];
        while (c.charAt(0) == ' ') c = c.substring(1, c.length);
        if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
    }
    return null;
}

function EraseCookie(name) {
    CreateCookie(name, "", -1);
}

function Trim(zeichenkette) {

    return zeichenkette.replace(/^\s+/, '').replace(/\s+$/, '');
}

function CreateInfoBox(content, top){
    var div = document.createElement("div");
    div.className = "InfoBox";
    div.innerHTML = content;
    if(top != null)
        div.style.top = top;
    
    return div;
}

function AddDaysToDate(time, days) {
    return new Date(time.getTime() + (days * 86400000));
}

function GetMaxDays(month, year) {
    return new Date(year * 1, month * 1 + 1, 0).getDate();
}

function GetUrlParameter(param) {
    var urlvars = new Array();
    var strGET = document.location.search.substr(1, document.location.search.length);
    if (strGET != '') {
        var gArr = strGET.split('&');
        for (i = 0; i < gArr.length; ++i) {
            var v = ''; 
            var vArr = gArr[i].split('=');
            if (vArr.length > 1) {
                v = vArr[1]; 
            }
            
            urlvars[unescape(vArr[0])] = unescape(v);
        }
    }

    if (!urlvars[param]) {
        return null; 
    }

    return urlvars[param];
}