﻿var bAllFlightFound = true;

function SearchAvailability() 
{
    var objOut = document.getElementById(FindControlName("span", "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 ctrCombo = document.getElementById("optPaxNumber");

    setPointer();
    HappyAirway.Webservice.wsCoreService.ToSearchPage(objOrigin.options[objOrigin.selectedIndex].value,
                                                      objDes.options[objDes.selectedIndex].value,
                                                      objOutDate.value,
                                                      objReturnDate.value,
                                                      parseInt(ctrCombo.options[ctrCombo.selectedIndex].value),
                                                      SuccessToSearchPage,
                                                      ServiceError,
                                                      ServiceTimeOut);

    objOrigin = null;
    objDes = null;
    objOutDate = null;
    objReturnDate = null;
    ctrCombo = 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 ctrCombo = document.getElementById("optPaxNumber");

    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 strPaxNum = ctrCombo.options[ctrCombo.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", strPaxNum);

    objReturn = null;
    objOutDate = null;
    objReturnDate = 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 ctrCombo = document.getElementById("optPaxNumber");

    var objSelectFligh = document.getElementById("dvSelectFlight");
    var objOutDate = document.getElementById("txt_dvCalendarOutBound");
    var objReturnDate = document.getElementById("txt_dvCalendarReturn");
    
    var strErr = "";
    
    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("span", "dvFlightOutbound")).innerHTML = "";
    document.getElementById(FindControlName("span", "dvFlightReturn")).innerHTML = "";
    
    if (strErr.length == 0) {
        HappyAirway.Webservice.wsCoreService.GetAvailability("out",
                                                         objOrigin.options[objOrigin.selectedIndex].value,
                                                         objDes.options[objDes.selectedIndex].value,
                                                         objOutDate.value,
                                                         parseInt(ctrCombo.options[ctrCombo.selectedIndex].value),
                                                         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(ctrCombo.options[ctrCombo.selectedIndex].value),
                                                             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("span", "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("span", "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 strOutInvId = "";
    var strReturInvId = "";

    var objOut = document.getElementsByName("opt_out");
    strOutInvId = FindOptionSelectedValue(objOut);
    objOut = null;


    var objReturn = document.getElementsByName("opt_return");   
    if (objReturn != null) {
        strReturInvId = FindOptionSelectedValue(objReturn);
        objReturn = null;
    }

    setPointer();
    HappyAirway.Webservice.wsCoreService.SelectedFlight(strOutInvId,
                                                        strReturInvId,
                                                        objPaxNum.options[objPaxNum.selectedIndex].value,
                                                        SuccessSelectedFlight,
                                                        ServiceError, 
                                                        ServiceTimeOut);
}

function SuccessSelectedFlight(result) {

    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;
    }
    resetPointer();
    objCookies = null;
}

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;
        }
    }
}