﻿// Default-Parameter
var KID = "237001";
var agent = "";
var showresult = "1";
var formular = "4";
var detail = "zielgebiet";
var engine = "";
var quickf = "1";

$(document).ready(function () {

    if (document.getElementById('rp_swizard') != null) {
        $('#rp_swizard').pxTabs();
        initDynamicSel();
        SetPerson();
        InitCal();
        InitWizardTextBoxes();
        window.setTimeout("fillList()", 3000);
    }
});

function fillList() {
    fillZiel();
    fillOperator();
}

function fillOperator() {
    for (var typ = 0; typ < 2; typ++) {
        var operator = [];
        var operatorCache = [];

        switch (typ) {
            case 0:
                if (arrMarke_653 != undefined) {
                    operatorCache = arrMarke_653;
                } else {
                    continue;
                }
                break;
            case 1:
                if (arrMarke_654 != undefined) {
                    operatorCache = arrMarke_654;
                } else {
                    continue;
                }
                break;
            default: break;
        }

        for (var i in operatorCache) {
            operator.push(operatorCache[i].split(';')[0] + '|' + operatorCache[i].split(';')[1]);
        }

        switch (typ) {
            case 0:
                fillComboBox("htl_marke", operator, false);
                fillComboBox("cy_marke", operator, false);
                fillComboBox("hcy_marke", operator, false);
                break;
            case 1:
                fillComboBox("lm_marke", operator, false);
                fillComboBox("pl_marke", operator, false);
                break;
            default: break;
        }
    };
}

function fillRegion(typ) {
    if ($("#" + typ + "_ziel").size() > 0) {
        var zielID = $("#" + typ + "_ziel").get(0).value;
        if (zielID == "" || zielID == "-1") {
            zielID = ($('#hdnDynSel').size() > 0) ? getHdnValue(typ + "_ziel") : "";
            if (zielID == "") zielID = getURLParam(typ + "_ziel");
        }
        var reg = [];
        var regionen = [];

        switch (typ) {
            case 'lm':
            case 'pl':
                if (TTREGS_654 != undefined) {
                    regionen = TTREGS_654;
                }
                break;
            case 'htl':
                if (TTREGS_653 != undefined) {
                    regionen = TTREGS_653;
                }
                break;
            default: break;
        }
        for (var i in regionen) {
            if ((regionen[i].split('|')[2] == zielID) && (regionen[i].split('|')[3] != zielID)) reg.push(regionen[i]);
        }
        fillComboBox(typ + "_region", reg, false);
    };
};

function getHdnValue(selID) {
    var retVal = "";
    var obj = DeserialHdnDynSel($('#hdnDynSel').val());
    for (i in obj) {
        try {
            if (i == selID) {
                retVal = obj[i];
                break;
            };
        } catch (e) { };
    };

    return retVal;
};

function DeserialHdnDynSel(hdnVal) {
    var arr = hdnVal.split('&');
    var obj = {};
    for (var i = 0; i < arr.length; i++) {
        obj[arr[i].split('=')[0]] = arr[i].split('=')[1];
    };
    return obj;
};

function fillComboBox(selID, arr, isValFirst) {
    var val = ($('#hdnDynSel').size() > 0) ? getHdnValue(selID) : "";
    if (val == "") val = getURLParam(selID);
    var valIdx = (isValFirst) ? 0 : 1;
    var lblIdx = (isValFirst) ? 1 : 0;

    var options = '<option value="-1" >beliebig</option>';
    if (arr.length < 1) return;
    for (var j in arr) {
        options = options + '<option value="' + arr[j].split('|')[valIdx] + '" ' +
        '>' + arr[j].split('|')[lblIdx] + '</option>';
    }

    $("#" + selID).html(options);

    if (val == "") {
        $("#" + selID + " option:first").attr("selected", true);
    } else {
        $("#" + selID).children().each(function () {
            if ($(this).attr('value') == val) {
                try { $(this).attr("selected", true); } catch (e) { };
            }
        });
    }
};

function getURLParam(strParamName) {
    var strReturn = "";
    var strHref = window.location.href;
    if (strHref.indexOf("?") > -1) {
        var strQueryString = strHref.substr(strHref.indexOf("?")).toLowerCase();
        var aQueryString = strQueryString.split("&");
        for (var iParam = 0; iParam < aQueryString.length; iParam++) {
            if (aQueryString[iParam].indexOf(strParamName + "=") > -1) {
                var aParam = aQueryString[iParam].split("=");
                strReturn = aParam[1];
                break;
            }
        }
    }
    return unescape(strReturn);
}

function SetRoomtype(typ) {
    if (($('#' + typ + '_zimmer').get(0) != null) && ($('#' + typ + '_zimmer').val() != "-1")) {
        var val = $('#' + typ + '_zimmer').val();
        $('#' + typ + '_zimmerCode').val('-2');
        $('#' + typ + '_addZimmer').val('-1');
        var id = '_zimmerCode';
        if (val[0] == 'x') {
            val = val.replace(/x\|/g, '');
            id = '_addZimmer';
        }
        $('#' + typ + id).val(val);
    } else if ($('#' + typ + '_zimmer').get(0) != null) {
        $('#' + typ + '_zimmerCode').val('-1');
        $('#' + typ + '_addZimmer').val('-1');
    }
}

function SetPerson(typ) {
    if (($('#' + typ + '_person').get(0) != null) && ($('#' + typ + '_erw').get(0) != null)) {
        var person = $('#' + typ + '_erw').get(0).value
                   + $('#' + typ + '_kind1').get(0).value
                   + $('#' + typ + '_kind2').get(0).value
                   + $('#' + typ + '_kind3').get(0).value;

        $('#' + typ + '_person').attr('value', person);
    };
};

function PostForm(formDivId, action, typ) {
    var statics = initStaticParams(typ);
    var inputs = [];
    inputs = GetInputParams(formDivId, true);
    window.location.href = action + statics + "&" + inputs.join('&');
};

function initStaticParams(typ) {
    var retVal = '';
    switch (typ) {
        default:
        case 'lm':
        case 'htl':
            {
                retVal = 'KID=' + KID + '&agent=' + agent + '&showresult=' + showresult
                   + '&formular=' + formular + '&detail=' + detail + '&engine=' + engine
                   + '&quickf=' + quickf;
                break;
            }
        case 'pl':
            {
                retVal = 'KID=' + KID + '&agent=' + agent + '&showresult=' + showresult
                   + '&formular=' + formular + '&detail=' + detail + '&engine=pauschal'
                   + '&quickf=' + quickf;
                break;
            }
        case 'fl':
            {
                retVal = 'KID=' + KID + '&agent=' + agent + '&showresult=' + showresult
                   + '&formular=3' + '&detail=' + detail + '&nurflug=1';
                break;
            }
        case 'fewo':
            {
                retVal = 'KID=' + KID + '&agent=' + agent + '&showresult=' + showresult
                   + '&formular=' + formular + '&detail=' + detail + '&engine=fewo';
                break;
            }
    }

    return retVal;
}

function GetInputParams(formDivId, getName) {
    var inputs = [];
    $(':input', $('#' + formDivId)).each(
      function () {
          //if it's radio or checkbox and NOT checked - ignore!
          if (this.nodeName.toLowerCase() == "input" &&
          (this.type.toLowerCase() == "radio" || this.type.toLowerCase() == "checkbox") &&
          !this.checked) {
              return;
          }
          // add by christian
          // remove parameter with empty name
          var parameterName = ((getName) ? this.name : this.id);
          if (parameterName != '') {
              if ((parameterName == "preis") && (this.value != '')) {
                  inputs.push(parameterName + '=8_' + this.value);
              }
              else {
                  var wert = '';
                  //if(this.type.toLowerCase() != "checkbox") {
                  wert = escape(this.value);
                  /*} else {
                  wert = (this.checked) ? '1' : '0';
                  }*/
                  inputs.push(parameterName + '=' + wert);
              }
          }
      }
    );
    return inputs;
};

function setZFilter(inpt, typ) {
    var val = ($('#' + typ + '_meer')[0].checked == true) ? parseInt($('#' + typ + '_meer').val()) : 0;
    val = ($('#' + typ + '_rom7')[0].checked == true) ? parseInt($('#' + typ + '_zimmer2').get(0).value) + val : val;
    $('#' + inpt).attr('value', val.toString());
};

function InitWizardTextBoxes() {
    $(".wizcontent").each(function () {
        $(":text", this).each(function () {
            $(this).keydown(function (e) {
                var evtobj = window.event ? event : e;
                var keyCode = evtobj.charCode ? evtobj.charCode : evtobj.keyCode;
                if (keyCode == 13) {
                    var wizardContainer = this;
                    while ((wizardContainer = $(wizardContainer).parent()) != null &&
                        !$(wizardContainer).hasClass("wizcontent"));
                    $(".submitBtn", wizardContainer).click();
                    return false;
                }
            });
        });
    });
}

function InitCal() {
    $('.cal').each(function () {
        var config = { clickInput: true, createButton: false, showYearNavigation: false, verticalOffset: 20, horizontalOffset: 0, displayClose: true };
        $(this).datePicker(config);
        $(this).dpSetSelected($(this).val());
    });
};

function fillZiel() {
    for (var typ = 0; typ < 2; typ++) {
        var ziel = [];
        var regionen = [];

        // add by christian
        // fix wrong country-Id's
        switch (typ) {
            case 0:
                if (TTREGS_653 != undefined) {
                    regionen = TTREGS_653;
                } else {
                    continue;
                }
                break;
            case 1:
                if (TTREGS_654 != undefined) {
                    regionen = TTREGS_654;
                } else {
                    continue;
                }
                break;
            default: break;
        }

        for (var i in regionen) {
            if ((regionen[i].split('|')[1] == regionen[i].split('|')[2]) && (regionen[i].split('|')[2] == regionen[i].split('|')[3])) ziel.push(regionen[i]);
        }

        switch (typ) {
            case 0:
                fillComboBox("htl_ziel", ziel, false);
                fillRegion("htl");
                break;
            case 1:
                fillComboBox("lm_ziel", ziel, false);
                fillComboBox("pl_ziel", ziel, false);
                fillRegion("lm");
                fillRegion("pl");
                break;
            default: break;
        }
    };
};

function fillAirport() {
    var airp = [];
    for (var i in airpArr) {
        if ((airpArr[i].split('|')[0] != '') && (airpArr[i].split('|')[1] != '')) airp.push(airpArr[i]);
    }

    var profileEntrys = ($('#hdnProfileDepAir').size() > 0) ? $('#hdnProfileDepAir').get(0).value : "";

    if (profileEntrys.length > 0) {
        fillProfileAirp("lm_air", airp, true, profileEntrys);
        fillProfileAirp("pl_air", airp, true, profileEntrys);
        fillProfileAirp("fl_air", airp, true, profileEntrys);
    } else {
        fillComboBox("lm_air", airp, true);
        fillComboBox("pl_air", airp, true);
        fillComboBox("fl_air", airp, true);
    }
};

function findAirpByID(arr, id) {
    for (var j in arr) {
        if (arr[j].split('|')[0] == id) return arr[j].split('|')[1]
    }
    return "";
}
function initDynamicSel() {
    $("select.dynamicSel").each(function () {
        // set onchange-func...
        $(this).change(function () {
            changeHdnDynSelValue($(this).attr('id'), $(this).val());
        });
    });
};

function changeHdnDynSelValue() {
    var val = "";
    $("select.dynamicSel").each(function () {
        if (val != "") val += "&";
        val += $(this).attr('id') + "=" + escape($(this).val());
    });
    $('#hdnDynSel').val(val);
};

function ValidateDate() {
    var wizContent;

    if ($('.wizcontent').size() > 0) {
        $('.wizcontent').each(function () {
            if (this.style.display == 'block') {
                wizContent = this;
            };
        });
    }
    else {
        $('.wiz_lm_ps').each(function () {
            if (this.style.display == 'block') {
                wizContent = this;
            };
        });
    }
    if (typeof (wizContent) == 'undefined') {
        wizContent = $('.wizcontent').get(0);
    }

    var termin = $("#" + wizContent.id + " input[name='termin']");
    var ruecktermin = $("#" + wizContent.id + " input[name='ruecktermin']");
    var tDD, tMM, tYY, rDD, rMM, rYY = 0;

    if (termin) {
        var date = $(termin).attr('value');
        var dateArr = date.split('.');
        tDD = parseInt(dateArr[0]);

        if (dateArr[0].indexOf("0") == 0) {
            tDD = parseInt(dateArr[0].substring(1, 2));
        }

        tMM = parseInt(dateArr[1]);

        if (dateArr[1].indexOf("0") == 0) {
            tMM = parseInt(dateArr[1].substring(1, 2));
        }

        tYY = parseInt(dateArr[2]);
    }

    if (ruecktermin) {
        var date = $(ruecktermin).attr('value');
        var dateArr = date.split('.');
        rDD = parseInt(dateArr[0]);

        if (dateArr[0].indexOf("0") == 0) {
            rDD = parseInt(dateArr[0].substring(1, 2));
        }

        rMM = parseInt(dateArr[1]);

        if (dateArr[1].indexOf("0") == 0) {
            rMM = parseInt(dateArr[1].substring(1, 2));
        }

        rYY = parseInt(dateArr[2]);
    }

    var Tag, Monat, Jahr;
    var mustChanged = false;

    if (tYY > rYY) {
        mustChanged = true;
    }
    else if (tYY == rYY) {
        if (tMM > rMM) {
            mustChanged = true;
        }
        else if (tMM == rMM) {
            if (tDD > rDD) {
                mustChanged = true;
            }
        }
    }

    if (mustChanged) {
        var day = tDD + parseInt(timeSpan);

        while (day > 31) {
            tMM++;
            day = day - 31;
        }

        if (tMM > 12) {
            tYY++;
            var month = tMM;
            var counter = 0;
            tMM = 0;
            while (month > 12) {
                month = month - 1;
                counter++;
            }
            tMM = tMM + counter;
        }

        var responseDate = new Date(tYY, tMM - 1, day);
        var dd = responseDate.getDate();
        var mm = responseDate.getMonth() + 1;
        var yy = responseDate.getFullYear();

        Tag = dd;
        Monat = mm;
        Jahr = yy;

        if (dd < 10) {
            Tag = "0" + dd;
        }

        if (mm < 10) {
            Monat = "0" + mm;
        }

        $(ruecktermin).attr('value', Tag + "." + Monat + "." + Jahr);
        $(ruecktermin).dpSetSelected($(ruecktermin).val());
    }
};

