﻿var bAllFlightFound = true;

function SearchAvailability() {

    //window.open("html/popup.html", "HappyAir", "location=0,status=0,scrollbars=1,toolbar=0, resizable=0, width=660, height=280");
    var objOut = document.getElementById(FindControlName("div", "dvFlightOutbound"));
    if (objOut == null) {
        ToSearchPage();
    }
    else {
        SearchOnlyFlight();
    }
}

function ToSearchPage() {

    var objOrigin = document.getElementById(FindControlName("select", "optOrigin"));
    var objDes = document.getElementById(FindControlName("select", "optDestination"));
    var objOutDate = document.getElementById("txt_dvCalendarOutBound");
    var objReturnDate = document.getElementById("txt_dvCalendarReturn");
    var ctrAdultCombo = document.getElementById("optPaxNumber");
    var ctrChildCombo = document.getElementById("optChild");
    var ctrInfantCombo = document.getElementById("optInfant");

    setPointer();
    HappyAirway.Webservice.wsCoreService.ToSearchPage(objOrigin.options[objOrigin.selectedIndex].value,
                                                      objDes.options[objDes.selectedIndex].value,
                                                      objOutDate.value,
                                                      objReturnDate.value,
                                                      parseInt(ctrAdultCombo.options[ctrAdultCombo.selectedIndex].value),
                                                      parseInt(ctrChildCombo.options[ctrChildCombo.selectedIndex].value),
                                                      parseInt(ctrInfantCombo.options[ctrInfantCombo.selectedIndex].value),
                                                      SuccessToSearchPage,
                                                      ServiceError,
                                                      ServiceTimeOut);

    objOrigin = null;
    objDes = null;
    objOutDate = null;
    objReturnDate = null;
    
    ctrAdultCombo = null;
    ctrChildCombo = null;
    ctrInfantCombo = null;
}
function SuccessToSearchPage(result) 
{

    var objReturn = document.getElementById("optReturn");
    var objOrigin = document.getElementById(FindControlName("select", "optOrigin"));
    var objDes = document.getElementById(FindControlName("select", "optDestination"));
    var objOutDate = document.getElementById("txt_dvCalendarOutBound");
    var objReturnDate = document.getElementById("txt_dvCalendarReturn");
    var ctrAdult = document.getElementById("optPaxNumber");
    var ctrChild = document.getElementById("optChild");
    var ctrInfant = document.getElementById("optInfant");

    var bReturn = objReturn.checked;
    var strOrigin = objOrigin.options[objOrigin.selectedIndex].value;
    var strDes = objDes.options[objDes.selectedIndex].value;
    var strOutDate = objOutDate.value;
    var strReturnDate = objReturnDate.value;
    var strAdultNum = ctrAdult.options[ctrAdult.selectedIndex].value;
    var strChildNum = ctrChild.options[ctrChild.selectedIndex].value;
    var strInfantNum = ctrInfant.options[ctrInfant.selectedIndex].value;

    objReturn = null;
    objOrigin = null;
    objDes = null;
    objOutDate = null;
    objReturnDate = null;
    ctrCombo = null;
    
    
    var objMain = document.getElementById("dvMain");
    objMain.innerHTML = result;
    objMain = null

    objReturn = document.getElementById("optReturn");
    objOutDate = document.getElementById("txt_dvCalendarOutBound");
    objReturnDate = document.getElementById("txt_dvCalendarReturn");

    SetComboValue(FindControlName("select", "optOrigin"), strOrigin);
    SetComboValue(FindControlName("select", "optDestination"), strDes);
    if (bReturn == false) 
    {
        objReturn.checked = bReturn;
        document.getElementById("optOneWay").checked = true;
        ShowHideSearch(bReturn);
    }
    objOutDate.value = strOutDate;
    objReturnDate.value = strReturnDate;

    SetComboValue("optPaxNumber", strAdultNum);
    SetComboValue("optChild", strChildNum);
    SetComboValue("optInfant", strInfantNum);

    objReturn = null;
    objOutDate = null;
    objReturnDate = null;

    ctrAdult = null;
    ctrChild = null;
    ctrInfant = null;
    
    //Set Search Avai Info
    show_date('dvCalendarOutBound', today.getMonth(), today.getFullYear(), '');
    show_date('dvCalendarReturn', today.getMonth(), today.getFullYear(), '');

    resetPointer();
}
function SearchOnlyFlight() {

    var objReturn = document.getElementById("optReturn");
    var objOrigin = document.getElementById(FindControlName("select", "optOrigin"));
    var objDes = document.getElementById(FindControlName("select", "optDestination"));

    var ctrAdult = document.getElementById("optPaxNumber");
    var ctrChild = document.getElementById("optChild");
    var ctrInfant = document.getElementById("optInfant");

    var objSelectFligh = document.getElementById("dvSelectFlight");
    var objOutDate = document.getElementById("txt_dvCalendarOutBound");
    var objReturnDate = document.getElementById("txt_dvCalendarReturn");
    
    var strErr = "";
    var bRoundTrip = false;
    
    objSelectFligh.style.display = "none";
    objSelectFligh = null;
    
    if (objOrigin.options[objOrigin.selectedIndex].value == objDes.options[objDes.selectedIndex].value) {

        strErr = strErr + "* Origin and Detination can not be the same port!!\n";
    }
    if (objOutDate.value.length == 0) {
        strErr = strErr + "* Flight date is required!!\n";
    }
    if (objReturnDate.value.length == 0 && objReturn.checked == true) {
        strErr = strErr + "* Return date is required!!\n";
    }

    bAllFlightFound = true;
    
    document.getElementById(FindControlName("div", "dvFlightOutbound")).innerHTML = "";
    document.getElementById(FindControlName("div", "dvFlightReturn")).innerHTML = "";
    
    if (strErr.length == 0) {
        HappyAirway.Webservice.wsCoreService.GetAvailability("out",
                                                         objOrigin.options[objOrigin.selectedIndex].value,
                                                         objDes.options[objDes.selectedIndex].value,
                                                         objOutDate.value,
                                                         parseInt(ctrAdult.options[ctrAdult.selectedIndex].value),
                                                         parseInt(ctrChild.options[ctrChild.selectedIndex].value),
                                                         parseInt(ctrInfant.options[ctrInfant.selectedIndex].value),
                                                         objReturn.checked,
                                                         SuccessAvaiOutbound,
                                                         ServiceError,
                                                         ServiceTimeOut);
        

        //Search for return date.
        if (objReturn.checked == true) {
            HappyAirway.Webservice.wsCoreService.GetAvailability("return",
                                                             objDes.options[objDes.selectedIndex].value,
                                                             objOrigin.options[objOrigin.selectedIndex].value,
                                                             objReturnDate.value,
                                                             parseInt(ctrAdult.options[ctrAdult.selectedIndex].value),
                                                             parseInt(ctrChild.options[ctrChild.selectedIndex].value),
                                                             parseInt(ctrInfant.options[ctrInfant.selectedIndex].value),
                                                             objReturn.checked,
                                                             SuccessAvaiReturn,
                                                             ServiceError,
                                                             ServiceTimeOut);

        }
        var objSelect = document.getElementById("dvSelectFlightWrapper");
        if (objSelect != null) 
        {
            objSelect.style.display = "block";
            objSelect = null; 
        }
        
    }
    else {
        alert(strErr);
    }

    objReturnDate = null;
    objOutDate = null;
    ctrCombo = null;
    objReturn = null;
    objOrigin = null;
    objDes = null;
}

function SuccessAvaiOutbound(result) {

    if (result.length > 0) {

        var objOut = document.getElementById(FindControlName("div", "dvFlightOutbound"));
        objOut.innerHTML = result;
        objOut = null;

        //Default select first option.
        var objOption = document.getElementsByName("opt_out");
        if (objOption != null) {
            if (objOption.length > 0) {
                objOption[0].checked = true;
            }
            else {
                bAllFlightFound = false;
            }
            objOption = null;
        }

        //Show select flight button.
        ShowSelectFlightButton();
    }
    else {
        alert("Outward flight not found");
    }
}

function SuccessAvaiReturn(result) {

    if (result.length > 0) {
        var objReturn = document.getElementById(FindControlName("div", "dvFlightReturn"));
        objReturn.innerHTML = result;
        objReturn = null;

        //Default select first option.
        var objOption = document.getElementsByName("opt_return");
        if (objOption != null) {
            if (objOption.length > 0) {
                objOption[0].checked = true;
            }
            else {
                bAllFlightFound = false;
            }
        }
        
        objOption = null;

        //Show select flight button.
        ShowSelectFlightButton();
    }
    else {
        alert("Return flight not found");
    }
}

function ShowHideSearch(bReturn) {

    var objTextDate = document.getElementById("dvReturnDate");
    
    if (bReturn == true) {
        objTextDate.style.display = "block";
    }
    else {
        objTextDate.style.display = "none";
    }

    objTextDate = null;
}

function SelectedFlight() {

    var objPaxNum = document.getElementById("optPaxNumber");
    var objchkReturn = document.getElementById("optReturn");
    var arrParam;
    
    var strOutInvId = "";
    var strReturInvId = "";

    var strOutFlightId = "";
    var strReturFlightId = "";

    var strOutFareId = "";
    var strReturFareId = "";

    var objOut = document.getElementsByName("opt_out");
    arrParam = FindOptionSelectedValue(objOut).split('|');
    
    strOutInvId = arrParam[0];
    strOutFlightId = arrParam[1];
    strOutFareId = arrParam[2];

    objOut = null;


    var objReturn = document.getElementsByName("opt_return");   
    if (objReturn.length > 0) {
        arrParam = FindOptionSelectedValue(objReturn).split('|');
        
        strReturInvId = arrParam[0];
        strReturFlightId = arrParam[1];
        strReturFareId = arrParam[2];
        
        objReturn = null;
    }

    if (objchkReturn.checked == true && (strOutInvId.length == 0 || strReturInvId.length == 0)) {
        alert("Please select both outbound and return flight");
    }
    else {
        setPointer();
        HappyAirway.Webservice.wsCoreService.SelectedFlight(strOutInvId,
                                                            strReturInvId,
                                                            strOutFlightId,
                                                            strReturFlightId,
                                                            strOutFareId,
                                                            strReturFareId,
                                                            SuccessSelectedFlight,
                                                            ServiceError,
                                                            ServiceTimeOut);
    }
    
}

function SuccessSelectedFlight(result) {

    if (result.length > 0)
    {
        var objMain = document.getElementById("dvMain");
        var strCookies = getCookie("coContact");
        objMain.innerHTML = result;
        objMain = null

        if (strCookies != null) {
            var arr = strCookies.split("|");

            document.getElementById("txtContactFirstname").value = arr[0];
            document.getElementById("txtContactLastname").value = arr[1];
            document.getElementById("txtAddress1").value = arr[2];
            document.getElementById("txtAddress2").value = arr[3];
            document.getElementById("txtStreet").value = arr[4];
            document.getElementById("txtDistrict").value = arr[5];
            document.getElementById("txtProvince").value = arr[6];
            document.getElementById("txtCountry").value = arr[7];
            document.getElementById("txtTel").value = arr[8];
            document.getElementById("txtMobile").value = arr[9];
            document.getElementById("txtEmail").value = arr[10];

            //Find cookies then set to checked as default.
            document.getElementById("chkCookies").checked = true;
        }
        objCookies = null;
    }
    else 
    {
        alert("Your Selected flight is full, please try again.");
    }
    resetPointer();
}

function FindOptionSelectedValue(obj) {

    var strValue = "";
    
    for (var i = 0; i < obj.length; i++) {

        if (obj[i].checked == true) {

            strValue = obj[i].value;
            
        }
    }
    return strValue;
}

function ShowSelectFlightButton() {

    if (bAllFlightFound == true) {
        var objSelectFligh = document.getElementById("dvSelectFlight");
        if (objSelectFligh != null) {
            objSelectFligh.style.display = "block";
            objSelectFligh = null;
        }
    }
}
