﻿function SearchParameters() {

    this.CheckQueryString = false;
    this.ForceSearch = false;

    thisSearchParameters = this;

    this.Origin = "";
    this.Destination = "";
    this.NonStop = false;

    this.StartTimeOut = 0;
    this.EndTimeOut = 0;
    this.StartTimeIn = 0;
    this.EndTimeIn = 0;
    this.Adult = 0;
    this.Children = 0;
    this.Baby = 0;
    this.CabinFilter;
    this.BestCombinationWithSwitchAirport = 0;
    this.SearchType = 1;
    this.SearchMode = 1;
    this.Dates = [];
    this.CiaCodeList = [];
    this.CiaCodeRemoveList = [];
    this.RemakeSearch;
    this.PointOfSale;
    this.IsRoundTrip = true;

    this.Origins = [];
    this.Destinations = [];
    this.StartTime = [];
    this.EndTime = [];
    this.CabinType = [];
    this.CiaCode = [];

    this.MultiDestination = false;

    

    this.IsValidRequest = function () {
        if (this.MultiDestination) {
            return (thisSearchParameters.Origins && thisSearchParameters.Destinations);
        } else {
            return (thisSearchParameters.Origin && thisSearchParameters.Destination && thisSearchParameters.getShortIATAOrigin() != "" && thisSearchParameters.getShortIATADestination() != "");
        }
    }

    this.IsValidOriginDestination = function () {
        if (this.MultiDestination) {
            return thisSearchParameters.getShortIATAOriginFromList() == true && thisSearchParameters.getShortIATADestinationFromList() == true;
        } else {
            return thisSearchParameters.getShortIATAOrigin() != "" || thisSearchParameters.getShortIATADestination() != ""; 
        }
    }

    this.IsValidTextByIATAOriginAndDestination = function () {

        if ((this.Origin == "") && (this.Destination == ""))
            return false;

        if (ContainsSpecialCharacters(this.Origin) ||
            ContainsSpecialCharacters(this.Destination))
            return false;

        return true;
    }

    this.IsValidIATAOriginAndDestination = function () {

        var IATAOrigin = "";
        var IATADestination = "";

        if ((this.Origin != "") && (this.Destination != "")) {
            IATAOrigin = GetIATA(this.Origin);
            IATADestination = GetIATA(this.Destination);
        }

        if (this.Origin != "" && this.Destination != "" && IATAOrigin == "" && IATADestination == "") {
            IATAOrigin = "origin";
            IATADestination = "destination";
        }

        return IATAOrigin != IATADestination;
    }

    this.IsValidPassengerQuantity = function () {
        return ((parseInt($("#drpQtdADT").val()) + parseInt($("#drpQtdCHD").val()) + parseInt($("#drpQtdINF").val())) <= 9);
    }

    this.LoadParameters = function () {
        this.PointOfSale = CurrentPointOfSale;

        if (this.CheckQueryString) {
            if (QueryString("Multi") != null && QueryString("Multi") == "true") {

                var OriginTxt = QueryString("Origem").replaceAll("%20", " ");
                var DestinationTxt = QueryString("Destino").replaceAll("%20", " ");

                OriginTxt = OriginTxt.replaceAll("(", "--").replaceAll(")", "---");
                DestinationTxt = DestinationTxt.replaceAll("(", "--").replaceAll(")", "---");

                this.Origins = OriginTxt.split("|");
                this.Destinations = DestinationTxt.split("|");

                // Somamos 2 horas nas datas do request pois o fuso tira uma hora
                var dataTrecho = QueryString("Data");
                var arrData = dataTrecho.split("|");
                for (var x = 0; x < arrData.length; x++) {
                    this.Dates.push(StringToDateValues(arrData[x].toString()));
                }

                var horaTrechoInicio = QueryString("HoraInicio").replaceAll(" ", "");
                var horaTrechoFim = QueryString("HoraFim").replaceAll(" ", "");

                var arrHoraTrechoInicio = horaTrechoInicio.split("|");
                var arrHoraTrechoFim = horaTrechoFim.split("|");

                this.StartTime = arrHoraTrechoInicio;
                this.EndTime = arrHoraTrechoFim;

                this.IsRoundTrip = false;
                this.MultiDestination = true;

                var listCiaCode = QueryString("Cia");
                var arrCiaCode = listCiaCode.split("|");
                var arrSubCiaCode = [];
                for (var x = 0; x < arrCiaCode.length; x++) {
                    arrSubCiaCode = [];
                    if (arrCiaCode[x].toString().indexOf(",") >= 0) {
                        arrSubCiaCode = arrCiaCode[x].toString().split(",");
                    } else {
                        arrSubCiaCode.push(arrCiaCode[x].toString());
                    }
                    this.CiaCode.push(arrSubCiaCode);
                }

                this.Adult = QueryString("NumADT");
                this.Children = QueryString("NumCHD");
                this.Baby = QueryString("NumINF");

                if (QueryString("SomenteDireto") != null)
                    this.NonStop = !(QueryString("SomenteDireto") == 0 || QueryString("SomenteDireto") == "false")

                AirMotorUC.SetValues(this);

            } else {

                if (QueryString("SomenteIda") != null)
                    this.IsRoundTrip = (QueryString("SomenteIda") == 0 || QueryString("SomenteIda") == "false");

                this.Origin = QueryString("Origem").replaceAll("%20", " ");
                this.Destination = QueryString("Destino").replaceAll("%20", " ");

                // Somamos 2 horas nas datas do request pois o fuso tira uma hora
                var dataIda = StringToDateValues(QueryString("Data"));
                this.Dates.push(dataIda);

                if (this.IsRoundTrip) {
                    var dataVolta = StringToDateValues(QueryString("Data", 1));
                    if (dataVolta && dataVolta.isValid) {
                        this.Dates.push(dataVolta);
                    }
                    else {
                        this.IsRoundTrip = false;
                    }
                }

                this.MultiDestination = false;
                this.Adult = QueryString("NumADT");
                this.Children = QueryString("NumCHD");
                this.Baby = QueryString("NumINF");

                if (QueryString("Cia") != undefined)
                    if (QueryString("Cia").indexOf(",") >= 0)
                        this.CiaCodeList = QueryString("Cia").split(",");
                    else
                        this.CiaCodeList.push(QueryString("Cia"));

                if (QueryString("SomenteDireto") != null)
                    this.NonStop = !(QueryString("SomenteDireto") == 0 || QueryString("SomenteDireto") == "false")

                this.StartTimeOut = QueryString("Hora");
                this.EndTimeOut = QueryString("Hora");

                this.StartTimeIn = QueryString("Hora", 1);
                this.EndTimeIn = QueryString("Hora", 1);

                AirMotorUC.SetValues(this);

            }
        }
        else {
            AirMotorUC.LoadData();

            this.IsRoundTrip = AirMotorUC.IsRoundTrip;
            this.MultiDestination = AirMotorUC.MultiDestination;

            this.Adult = AirMotorUC.Adult;
            this.Children = AirMotorUC.Children;
            this.Baby = AirMotorUC.Baby;

            this.Origin = AirMotorUC.Origin;
            this.Destination = AirMotorUC.Destination;
            this.CabinFilter = AirMotorUC.CabinFilter;
            this.NonStop = AirMotorUC.NonStop;
            this.StartTimeOut = AirMotorUC.StartTimeOut;
            this.EndTimeOut = AirMotorUC.EndTimeOut;
            this.StartTimeIn = AirMotorUC.StartTimeIn;
            this.EndTimeIn = AirMotorUC.EndTimeIn;

            this.CiaCodeList = AirMotorUC.CiaCodeList;

            this.Origins = AirMotorUC.Origins;
            this.Destinations = AirMotorUC.Destinations;
            this.Dates = AirMotorUC.Dates;
            this.StartTime = AirMotorUC.StartTime;
            this.EndTime = AirMotorUC.EndTime;
            this.CabinType = AirMotorUC.CabinType;
            this.CiaCode = AirMotorUC.CiaCode;
        }
    }

    this.getShortIATAOriginFromList = function () {
        var numeroDeErro = 0;
        var stringRetorno = "";
        if (thisSearchParameters.Origins != null && thisSearchParameters.Origins != undefined && thisSearchParameters.Origins.length > 0) {
            for (var i = 0; i < thisSearchParameters.Origins.length; i++) {
                var originName = thisSearchParameters.Origins[i].toString();
                if (originName) {
                    if (originName.length == 3) {
                        stringRetorno = thisSearchParameters.Origin;
                    } else if (originName.indexOf("(") >= 0) {
                        try {
                            var StartPositionIata = originName.indexOf("(");
                            var EndPositionIata = originName.indexOf(")");
                            stringRetorno = originName.substring(StartPositionIata + 1, EndPositionIata);
                        } catch (ex) {
                            stringRetorno = "";
                            numeroDeErro++;
                        }

                    } else if (originName.indexOf("--") >= 0) {
                        try {
                            var StartPositionIata = originName.indexOf("--");
                            var EndPositionIata = originName.lastIndexOf("--");
                            stringRetorno = originName.substring(StartPositionIata + 2, EndPositionIata - 1);
                        } catch (ex) {
                            stringRetorno = "";
                            numeroDeErro++;
                        }

                    } else if (originName.indexOf("%28") >= 0) {
                        try {
                            var StartPositionIata = originName.indexOf("%28");
                            var EndPositionIata = originName.indexOf("%29");
                            stringRetorno = originName.substring(StartPositionIata + 3, EndPositionIata);
                        }
                        catch (ex) {
                            stringRetorno = "";
                            numeroDeErro++;
                        }
                    } else {
                        numeroDeErro++;
                        stringRetorno = "";
                    }
                } else {
                    numeroDeErro++;
                    stringRetorno = "";
                }
            }
        }

        return (numeroDeErro == 0 || stringRetorno != "");
    }

    this.getShortIATAOrigin = function () {
        if (thisSearchParameters.Origin)
            if (thisSearchParameters.Origin.length == 3) {
                return thisSearchParameters.Origin;
            }
            else if (thisSearchParameters.Origin.indexOf("(") >= 0) {
                try {
                    var StartPositionIata = thisSearchParameters.Origin.indexOf("(");
                    var EndPositionIata = thisSearchParameters.Origin.indexOf(")");
                    return thisSearchParameters.Origin.substring(StartPositionIata + 1, EndPositionIata);
                }
                catch (ex) {
                    return "";
                    PublishStringClientError(ex);
                }

            }
            else if (thisSearchParameters.Origin.indexOf("--") >= 0) {
                try {
                    var StartPositionIata = thisSearchParameters.Origin.indexOf("--");
                    var EndPositionIata = thisSearchParameters.Origin.lastIndexOf("--");
                    return thisSearchParameters.Origin.substring(StartPositionIata + 2, EndPositionIata - 1);
                }
                catch (ex) {
                    return "";
                    PublishStringClientError(ex);
                }

            }
            else if (thisSearchParameters.Origin.indexOf("%28") >= 0) {
                try {
                    var StartPositionIata = thisSearchParameters.Origin.indexOf("%28");
                    var EndPositionIata = thisSearchParameters.Origin.indexOf("%29");
                    return thisSearchParameters.Origin.substring(StartPositionIata + 3, EndPositionIata);
                }
                catch (ex) {
                    return "";
                    PublishStringClientError(ex);
                }
            }

        return "";

    }

    this.getShortIATADestination = function () {
        if (thisSearchParameters.Destination)
            if (thisSearchParameters.Destination.length == 3) {
                return thisSearchParameters.Destination;
            }
            else if (thisSearchParameters.Destination.indexOf("(") >= 0) {
                try {
                    var StartPositionIata = thisSearchParameters.Destination.indexOf("(");
                    var EndPositionIata = thisSearchParameters.Destination.indexOf(")");
                    return thisSearchParameters.Destination.substring(StartPositionIata + 1, EndPositionIata);
                }
                catch (ex) {
                    return "";
                    PublishStringClientError(ex);
                }

            }
            else if (thisSearchParameters.Destination.indexOf("--") >= 0) {
                try {
                    var StartPositionIata = thisSearchParameters.Destination.indexOf("--");
                    var EndPositionIata = thisSearchParameters.Destination.lastIndexOf("--");
                    return thisSearchParameters.Destination.substring(StartPositionIata + 2, EndPositionIata - 1);
                }
                catch (ex) {
                    return "";
                    PublishStringClientError(ex);
                }

            }
            else if (thisSearchParameters.Destination.indexOf("%28") >= 0) {
                try {
                    var StartPositionIata = thisSearchParameters.Destination.indexOf("%28");
                    var EndPositionIata = thisSearchParameters.Destination.indexOf("%29");
                    return thisSearchParameters.Destination.substring(StartPositionIata + 3, EndPositionIata);
                }
                catch (ex) {
                    return "";
                    PublishStringClientError(ex);
                }
            }

        return "";
    }


    this.getShortIATADestinationFromList = function () {
        var numeroDeErro = 0;
        var stringRetorno = "";
        if (thisSearchParameters.Destinations != null && thisSearchParameters.Destinations != undefined && thisSearchParameters.Destinations.length > 0) {
            for (var i = 0; i < thisSearchParameters.Destinations.length; i++) {
                var destinationName = thisSearchParameters.Destinations[i].toString();
                if (destinationName) {
                    if (destinationName.length == 3) {
                        stringRetorno = thisSearchParameters.Destination;
                    }
                    else if (destinationName.indexOf("(") >= 0) {
                        try {
                            var StartPositionIata = destinationName.indexOf("(");
                            var EndPositionIata = destinationName.indexOf(")");
                            stringRetorno = destinationName.substring(StartPositionIata + 1, EndPositionIata);
                        }
                        catch (ex) {
                            stringRetorno = "";
                            numeroDeErro++;
                        }

                    }
                    else if (destinationName.indexOf("--") >= 0) {
                        try {
                            var StartPositionIata = destinationName.indexOf("--");
                            var EndPositionIata = destinationName.lastIndexOf("--");
                            stringRetorno = destinationName.substring(StartPositionIata + 2, EndPositionIata - 1);
                        } catch (ex) {
                            stringRetorno = "";
                            numeroDeErro++;
                        }

                    } else if (destinationName.indexOf("%28") >= 0) {
                        try {
                            var StartPositionIata = destinationName.indexOf("%28");
                            var EndPositionIata = destinationName.indexOf("%29");
                            stringRetorno = destinationName.substring(StartPositionIata + 3, EndPositionIata);
                        }
                        catch (ex) {
                            stringRetorno = "";
                            numeroDeErro++;
                        }
                    }
                    else {
                        numeroDeErro++;
                    }
                } else {
                    numeroDeErro++;
                }
            }
        }

        return (numeroDeErro == 0 || stringRetorno != "");

    }


    this.getShortIATA = function (completeIata) {
        if (completeIata)
            if (completeIata.length == 3) {
                return completeIata;
            }
            else if (completeIata.indexOf("(") >= 0) {
                try {
                    var StartPositionIata = completeIata.indexOf("(");
                    var EndPositionIata = completeIata.indexOf(")");
                    return completeIata.substring(StartPositionIata + 1, EndPositionIata);
                }
                catch (ex) {
                    return "";
                    PublishStringClientError(ex);
                }

            }
            else if (completeIata.indexOf("--") >= 0) {
                try {
                    var StartPositionIata = completeIata.indexOf("--");
                    var EndPositionIata = completeIata.lastIndexOf("--");
                    return completeIata.substring(StartPositionIata + 2, EndPositionIata - 1);
                }
                catch (ex) {
                    return "";
                    PublishStringClientError(ex);
                }

            }

        return "";
    }

    this.PassengersDescription = function () {
        var passengersDescription = "";
        passengersDescription += thisSearchParameters.Adult;
        passengersDescription += " Adultos, ";
        passengersDescription += thisSearchParameters.Children;
        passengersDescription += " Crianças, ";
        passengersDescription += thisSearchParameters.Baby;
        passengersDescription += " Bebê, ";
    }

    this.GetTreatyTime = function (Time, Type) {

        var treatyTime = null;

        if (Time == undefined || Time == null || Time == "")
            return undefined;

        var Time = parseInt(Time);

        if (isNaN(Time))
            return undefined;

        if (Type == "Start") {

            treatyTime = Time - 1;
            if (treatyTime == -1)
                treatyTime = 0;
        }
        else {

            treatyTime = Time + 1;
            if (treatyTime == 24)
                treatyTime = 23;
        }

        return treatyTime;
    }


    this.getCabinRequest = function () {
        return parseFloat(this.CabinFilter);
    }

    this.CreateCityPairRequest = function (bolIda) {

        var localCiaCodeList = [];

        for (var i = 0; i < this.CiaCodeList.length; i++) {
            if (this.CiaCodeList[i] != undefined && this.CiaCodeList[i] != "") {
                if (this.CiaCodeList[i].length >= 2)
                    localCiaCodeList.push(this.CiaCodeList[i]);
            }
        }

        var cityPair = {
            CiaCodeList: localCiaCodeList,
            NonStop: this.NonStop
        }

        if (bolIda) {
            cityPair.Origin = this.getShortIATAOrigin().toUpperCase();
            cityPair.Destination = this.getShortIATADestination().toUpperCase();

            if (cityPair.Origin == "") {
                cityPair.Origin = this.Origin;
            }
            if (cityPair.Destination == "") {
                cityPair.Destination = this.Destination;
            }

            cityPair.DepartureYear = this.Dates[0].Year;
            cityPair.DepartureMonth = this.Dates[0].Month;
            cityPair.DepartureDay = this.Dates[0].Day;

            cityPair.StartTime = this.GetTreatyTime(this.StartTimeOut, "Start");
            cityPair.EndTime = this.GetTreatyTime(this.EndTimeOut, "End");

            cityPair.CabinFilter = parseFloat(this.CabinFilter);
        }
        else {
            cityPair.Origin = this.getShortIATADestination().toUpperCase();
            cityPair.Destination = this.getShortIATAOrigin().toUpperCase();

            if (cityPair.Origin == "") {
                cityPair.Origin = this.Destination;
            }
            if (cityPair.Destination == "") {
                cityPair.Destination = this.Origin;
            }

            cityPair.DepartureYear = this.Dates[1].Year;
            cityPair.DepartureMonth = this.Dates[1].Month;
            cityPair.DepartureDay = this.Dates[1].Day;

            cityPair.StartTime = this.GetTreatyTime(this.StartTimeIn, "Start");
            cityPair.EndTime = this.GetTreatyTime(this.EndTimeIn, "End");

            cityPair.CabinFilter = parseFloat(this.CabinFilter);

        }

        return cityPair;
    }

    this.CreateCityPairRequestFromList = function (item) {

        var localCiaCodeList = [];
        var currentCiaCodeList = [];

        currentCiaCodeList = this.CiaCode[item];
        for (var j = 0; j < currentCiaCodeList.length; j++) {
            if (currentCiaCodeList[j] != undefined && currentCiaCodeList[j] != "") {
                if (currentCiaCodeList[j].length >= 2)
                    localCiaCodeList.push(currentCiaCodeList[j]);
            }
        }

        var cityPair = {
            CiaCodeList: localCiaCodeList,
            NonStop: this.NonStop
        }

        cityPair.Origin = this.getShortIATA(this.Origins[item].toString()).toUpperCase();
        cityPair.Destination = this.getShortIATA(this.Destinations[item].toString()).toUpperCase();

        cityPair.DepartureYear = this.Dates[item].Year;
        cityPair.DepartureMonth = this.Dates[item].Month;
        cityPair.DepartureDay = this.Dates[item].Day;

        cityPair.StartTime = this.GetTreatyTime(this.StartTime[item], "Start");
        cityPair.EndTime = this.GetTreatyTime(this.EndTime[item], "End");

        cityPair.CabinFilter = parseFloat(this.CabinType[item]);

        return cityPair;
    }

    var RequestData = {
        PointOfSale: null,
        SearchData: { SearchMode: null,
            AirSearchData: {
                CityPairsRequest: null,
                NumberADTs: null, NumberCHDs: null, NumberINFs: null, SearchType: null, BestCombinationWithSwitchAirport: null,
                CabinFilter: null
            }
        }
    };

    this.GetRequestData = function () {

        if (this.Origins != null && this.Origins != undefined && this.Origins.length > 0) {

            var cityPairs = [this.CreateCityPairRequestFromList(0)];

            for (var i = 1; i < this.Origins.length; i++) {
                cityPairs.push(this.CreateCityPairRequestFromList(i));
            }

        } else {

            var cityPairs = [this.CreateCityPairRequest(true)];

            if (this.IsRoundTrip)
                cityPairs.push(this.CreateCityPairRequest(false));

        }

        RequestData.PointOfSale = this.PointOfSale;
        RequestData.SearchData.SearchMode = this.SearchMode;
        RequestData.SearchData.AirSearchData.CityPairsRequest = cityPairs;
        RequestData.SearchData.AirSearchData.NumberADTs = this.Adult;
        RequestData.SearchData.AirSearchData.NumberCHDs = this.Children;
        RequestData.SearchData.AirSearchData.NumberINFs = this.Baby;
        RequestData.SearchData.AirSearchData.SearchType = this.SearchType;
        RequestData.SearchData.AirSearchData.BestCombinationWithSwitchAirport = this.BestCombinationWithSwitchAirport;
        RequestData.SearchData.AirSearchData.CabinFilter = this.getCabinRequest();

        if (AffiliatedId != undefined && AffiliatedId != 0 && AffiliatedId != null)
            RequestData.AffiliatedId = AffiliatedId;

        return RequestData;
    }

    this.GetQueryString = function () {
        var QueryString = "";

        QueryString = QueryString + "";

        if (this.MultiDestination && this.MultiDestination == true) {

            QueryString = QueryString + "?SomenteIda=" + (thisSearchParameters.IsRoundTrip ? "0" : "1");

            var QueryStringOrigem = "&Origem=";
            for (var i = 0; i < thisSearchParameters.Origins.length; i++) {
                if (i == 0) {
                    QueryStringOrigem = QueryStringOrigem + thisSearchParameters.Origins[i].toString();
                } else {
                    QueryStringOrigem = QueryStringOrigem + "|" + thisSearchParameters.Origins[i].toString();
                }
            }
            QueryString = QueryString + QueryStringOrigem;

            var QueryStringDestino = "&Destino=";
            for (var i = 0; i < thisSearchParameters.Destinations.length; i++) {
                if (i == 0) {
                    QueryStringDestino = QueryStringDestino + thisSearchParameters.Destinations[i].toString();
                } else {
                    QueryStringDestino = QueryStringDestino + "|" + thisSearchParameters.Destinations[i].toString();
                }
            }
            QueryString = QueryString + QueryStringDestino;

            var QueryStringData = "&Data=";
            for (var i = 0; i < thisSearchParameters.Dates.length; i++) {
                if (i == 0) {
                    QueryStringData = QueryStringData + FormatSimpleDateValues(thisSearchParameters.Dates[i]);
                } else {
                    QueryStringData = QueryStringData + "|" + FormatSimpleDateValues(thisSearchParameters.Dates[i]);
                }
            }
            QueryString = QueryString + QueryStringData;

            var QueryStringHoraInicio = "&HoraInicio=";
            for (var i = 0; i < thisSearchParameters.StartTime.length; i++) {
                if (i == 0) {
                    QueryStringHoraInicio = QueryStringHoraInicio + thisSearchParameters.StartTime[i].toString();
                } else {
                    QueryStringHoraInicio = QueryStringHoraInicio + "|" + thisSearchParameters.StartTime[i].toString();
                }
            }
            QueryString = QueryString + QueryStringHoraInicio;

            var QueryStringHoraFim = "&HoraFim=";
            for (var i = 0; i < thisSearchParameters.EndTime.length; i++) {
                if (i == 0) {
                    QueryStringHoraFim = QueryStringHoraFim + thisSearchParameters.EndTime[i].toString();
                } else {
                    QueryStringHoraFim = QueryStringHoraFim + "|" + thisSearchParameters.EndTime[i].toString();
                }
            }
            QueryString = QueryString + QueryStringHoraFim;

            var QueryStringCiaCode = "&Cia=";
            for (var i = 0; i < thisSearchParameters.CiaCode.length; i++) {
                if (i == 0) {
                    QueryStringCiaCode = QueryStringCiaCode + thisSearchParameters.CiaCode[i][0].toString();
                } else {
                    QueryStringCiaCode = QueryStringCiaCode + "|" + thisSearchParameters.CiaCode[i][0].toString();
                }
            }
            QueryString = QueryString + QueryStringCiaCode;

            var QueryStringCabin = "&selCabin=";
            for (var i = 0; i < thisSearchParameters.CabinType.length; i++) {
                if (i == 0) {
                    QueryStringCabin = QueryStringCabin + thisSearchParameters.CabinType[i].toString();
                } else {
                    QueryStringCabin = QueryStringCabin + "|" + thisSearchParameters.CabinType[i].toString();
                }
            }
            QueryString = QueryString + QueryStringCabin;

            QueryString = QueryString + "&NumADT=" + thisSearchParameters.Adult;
            QueryString = QueryString + "&NumCHD=" + thisSearchParameters.Children;
            QueryString = QueryString + "&NumINF=" + thisSearchParameters.Baby;

            QueryString = QueryString + "&SomenteDireto=" + thisSearchParameters.NonStop;

            QueryString = QueryString + "&Multi=true"

            QueryString = QueryString.replace("undefined", "");
            QueryString = QueryString.replace("null", "");

        } else {

            QueryString = QueryString + "?SomenteIda=" + (thisSearchParameters.IsRoundTrip ? "0" : "1");
            QueryString = QueryString + "&Origem=" + thisSearchParameters.Origin;
            QueryString = QueryString + "&Destino=" + thisSearchParameters.Destination;
            QueryString = QueryString + "&Data=" + FormatSimpleDateValues(thisSearchParameters.Dates[0]);
            if (thisSearchParameters.Dates.length > 1 && thisSearchParameters.Dates[1] != undefined)
                QueryString = QueryString + "&Data=" + FormatSimpleDateValues(thisSearchParameters.Dates[1]);

            QueryString = QueryString + "&NumADT=" + thisSearchParameters.Adult;
            QueryString = QueryString + "&NumCHD=" + thisSearchParameters.Children;
            QueryString = QueryString + "&NumINF=" + thisSearchParameters.Baby;
            if (thisSearchParameters.CiaCodeList.length > 0)
                QueryString = QueryString + "&Cia=" + thisSearchParameters.CiaCodeList[0];

            QueryString = QueryString + "&SomenteDireto=" + (thisSearchParameters.NonStop ? "1" : "0");

            QueryString = QueryString + "&Hora=" + this.getHourValid(thisSearchParameters.StartTimeOut);
            QueryString = QueryString + "&Hora=" + this.getHourValid(thisSearchParameters.StartTimeIn);

//            QueryString = QueryString + "&Hora=" + thisSearchParameters.StartTime;
            //QueryString = QueryString + "&Hora=" + thisSearchParameters.EndTime;


            QueryString = QueryString + "&selCabin=" + thisSearchParameters.CabinFilter;

            QueryString = QueryString + "&Multi=false"

            QueryString = QueryString.replace("undefined", "");
            QueryString = QueryString.replace("null", "");

        }

        return QueryString;

    }

    this.getHourValid = function (valor) {
        var sRetorno = "";
        if (valor != "" && valor != undefined) {
            var arrValor = valor.split(":");
            sRetorno = arrValor[0];
        }
        return sRetorno;
    }

    this.IsValidPassengerQuantity = function () {
        return ((parseInt($("#drpQtdADT").val()) + parseInt($("#drpQtdCHD").val()) + parseInt($("#drpQtdINF").val())) <= 9);
    }
    
}

