﻿function ShowSummary() {

    var strErrString = "";

    var objContactName = document.getElementById("txtContactFirstname");
    var objContactLastname = document.getElementById("txtContactLastname");
    var objAddress1 = document.getElementById("txtAddress1");
    var objAddress2 = document.getElementById("txtAddress2");
    var objStreet = document.getElementById("txtStreet");
    var objDistrict = document.getElementById("txtDistrict");
    //    var objCounty = document.getElementById("txtCounty");
    var objProvince = document.getElementById("txtProvince");
    var objCountry = document.getElementById("txtCountry");
    var objTel = document.getElementById("txtTel");
    var objMobile = document.getElementById("txtMobile");
    var objEmail = document.getElementById("txtEmail");

    if (objContactName.value.length == 0) {
        strErrString = strErrString + "* Contact Name is required\n";
    }
    if (objContactLastname.value.length == 0) {
        strErrString = strErrString + "* Contact Lastname is required\n";
    }
    //    if (objAddress1.value.length == 0) {
    //        strErrString = strErrString + "* Address 1 is required\n";
    //    }
    if (objTel.value.length == 0 && objMobile.value.length == 0) {
        strErrString = strErrString + "* At least one telephone is required\n";
    }
    if (objEmail.value.length == 0) {
        strErrString = strErrString + "* Email is required\n";
    }
    if (ValidEmail(objEmail.value) == false) {
        strErrString = strErrString + "* Email is not correct format\n";
    }
    if (IsNumeric(objTel.value) == false) {
        strErrString = strErrString + "* Only numeric is allowed for Telephone\n";
    }
    if (IsNumeric(objMobile.value) == false) {
        strErrString = strErrString + "* Only numeric is allowed for Mobile\n";
    }

    //Save contact information.
    var strContact = "";
    if (strErrString.length == 0) {

        strContact = "<contact>" +
                        "<firstname>" + ConvertToValidXmlData(objContactName.value) + "</firstname>" +
                        "<lastname>" + ConvertToValidXmlData(objContactLastname.value) + "</lastname>" +
                        "<address1>" + ConvertToValidXmlData(objAddress1.value) + "</address1>" +
                        "<address2>" + ConvertToValidXmlData(objAddress2.value) + "</address2>" +
                        "<street>" + ConvertToValidXmlData(objStreet.value) + "</street>" +
                        "<district>" + ConvertToValidXmlData(objDistrict.value) + "</district>" +
                        "<county></county>" +
                        "<province>" + ConvertToValidXmlData(objProvince.value) + "</province>" +
                        "<country>" + ConvertToValidXmlData(objCountry.value) + "</country>" +
                        "<tel>" + ConvertToValidXmlData(objTel.value) + "</tel>" +
                        "<mobile>" + ConvertToValidXmlData(objMobile.value) + "</mobile>" +
                        "<email>" + ConvertToValidXmlData(objEmail.value) + "</email>" +
                        "<comment></comment>" +
                        "<special_service></special_service>" +
                     "</contact>";
        if (document.getElementById("chkCookies").checked == true) 
        {
            var dtExpiry = new Date();

            dtExpiry.setDate(dtExpiry.getDate() + 7);
            setCookie("coContact",
                      objContactName.value + "|" +
                      objContactLastname.value + "|" +
                      objAddress1.value + "|" +
                      objAddress2.value + "|" +
                      objStreet.value + "|" +
                      objDistrict.value + "|" +
                      objProvince.value + "|" +
                      objCountry.value + "|" +
                      objTel.value + "|" +
                      objMobile.value + "|" +
                      objEmail.value,
                      dtExpiry,
                      "",
                      "", 
                      false);
        }
    }
    
    //Save passenger information
    var objPaxId = document.getElementsByName("hdPassengerId");
    var objTitle;
    var objFirstname;
    var objLastname;
    var objType;
    var objPassportNo;

    var strPassenger = "";

    for (var i = 0; i < objPaxId.length; i++) {

        objTitle = document.getElementById("stTitle_" + (i + 1));
        objFirstname = document.getElementById("txtFirstname_" + (i + 1));
        objLastname = document.getElementById("txtLastname_" + (i + 1));
        objType = document.getElementById("tdType_" + (i + 1));
        objPassportNo = document.getElementById("txtDocNo_" + (i + 1));

        if (objFirstname.value.length == 0 && objLastname.value.length == 0) {
            strErrString = strErrString + "* Passenger(s) Firstname and Lastname are required\n";
            break;
        }
        else if (objPassportNo.value.length == 0) 
        {
            strErrString = strErrString + "* Passport No./ Id Number are required\n";
            break;
        }
        else 
        {
            strPassenger = strPassenger +
                            "<passenger>" +
                                "<passenger_id>" + objPaxId[i].value + "</passenger_id>" +
                                "<title>" + objTitle.options[objTitle.selectedIndex].value.toUpperCase() + "</title>" +
                                "<firstname>" + ConvertToValidXmlData(objFirstname.value.toUpperCase()) + "</firstname>" +
                                "<lastname>" + ConvertToValidXmlData(objLastname.value.toUpperCase()) + "</lastname>" +
                                "<type>" + objType.innerHTML + "</type>" +
                                "<document_no>" + ConvertToValidXmlData(objPassportNo.value) + "</document_no>" +
                            "</passenger>";
        }

    }

    //Save Transport Information
    var chkTransport = document.getElementsByName("chkTransport");
    var strTransport = "";
    if (chkTransport.length > 0) {

        var txtTransportRemark;
        var arrTransport;
       
        for (var i = 0; i < chkTransport.length; i++) {
            if (chkTransport[i].checked == true) {
                
                txtTransportRemark = document.getElementsByName("txtTransportRemark");
                arrTransport = chkTransport[i].value.split("|");
                
                strTransport = strTransport +
                                "<transport>" +
                                    "<transport_id>" + arrTransport[1] + "</transport_id>" +
                                    "<transport_fare>" + arrTransport[2] + "</transport_fare>" +
                                    "<flight_inventory_id>" + arrTransport[0] + "</flight_inventory_id>" +
                                    "<transport_remark>" + ConvertToValidXmlData(txtTransportRemark[i].innerHTML) + "</transport_remark>" +                              
                                "</transport>";    
            }
        }
    }
    
    if (strErrString.length == 0) {

        var strBookingInfo = strContact + strPassenger + strTransport;
        setPointer();
        HappyAirway.Webservice.wsCoreService.ShowSummary(strBookingInfo,
                                                        SuccessShowSummary,
                                                        ServiceError,
                                                        ServiceTimeOut);
    }
    else {
        alert(strErrString);
    }

}
function SuccessShowSummary(result) {

    var objMain = document.getElementById("dvMain");
    objMain.innerHTML = result;
    objMain = null;
    resetPointer();
}
function ShowPayment() 
{
    setPointer();
    HappyAirway.Webservice.wsCoreService.ShowPayment(SuccessShowPayment,
                                                     ServiceError,
                                                     ServiceTimeOut);
}
function SuccessShowPayment(result) {
   
    var objMain = document.getElementById("dvMain");
    objMain.innerHTML = result;
    objMain = null;

    var objAgencyName = document.getElementById(FindControlName("span", "dvAgencyName"));
    if (objAgencyName.innerHTML.length == 0) {
        var objAgencyWrapper = document.getElementById("dvAgencyHomeWrapper");
        var objPaymentWrapper = document.getElementById("dvPaymentWrapper");
        
        objAgencyWrapper.style.display = "none";
        objPaymentWrapper.style.display = "none";
        
        objAgencyWrapper = null;
        objPaymentWrapper = null;
    }
    else 
    {
        var objrdo = document.getElementById("rdoCreditAgent");
        objrdo.checked = true;
        objrdo = null;
    }
    objAgencyName = null;
    resetPointer();
}
function SavePayment() 
{
    var objChkAgency = document.getElementById("rdoCreditAgent");
    var objCC = document.getElementById("rdoCreditCard");
    var objRdoPayLater = document.getElementById("rdoPayLater");
    var objRdoPaymentVoucher = document.getElementById("rdoVoucher");

    var objAgencyName = document.getElementById(FindControlName("span", "dvAgencyName"));

    var objPaybutton = document.getElementById("btmBooked");
    if (objPaybutton != null) {
        objPaybutton.style.display = "none";
    }
    
    if (objRdoPayLater.checked == true) {
        HappyAirway.Webservice.wsCoreService.SaveBooking(false,
                                                             0,
                                                             false,
                                                             true,
                                                             false,
                                                             false,
                                                             SuccessSaveBooking,
                                                             ServiceError,
                                                             ServiceTimeOut);
    }
    else if (objCC.checked == true) {
        var objHiddenPrice = document.getElementById("hdTotalPrice");
        var num = Number(objHiddenPrice.value.replace(/\,/g, ''));

        var strFeeXml = "<fee>" +
                                "<fee_type>CRC</fee_type>" +
                                "<fee_amount>" + (num * .04).toFixed(2) + "</fee_amount>" +
                            "</fee>";
        objHiddenPrice = null;
        HappyAirway.Webservice.wsCoreService.PaymentCreditCard("",
                                                               SuccessPaymentCreditCard,
                                                               ServiceError,
                                                               ServiceTimeOut);
    }
    else if (objChkAgency.checked == true) {
        var objCreditAmount = document.getElementById(FindControlName("span", "dvCredit"));

        HappyAirway.Webservice.wsCoreService.SaveBooking(true,
                                                             objCreditAmount.innerHTML,
                                                             true,
                                                             false,
                                                             false,
                                                             false,
                                                             SuccessSaveBooking,
                                                             ServiceError,
                                                             ServiceTimeOut);
        objRdoPayLater = null;
    }
    else if (objRdoPaymentVoucher.checked == true) {
        PaymentVoucher();
    }
    objAgencyName = null; 
    objChkAgency = null;
    objCC = null;
    objRdoPayLater = null;
 }
 function SuccessPaymentCreditCard(result) {

     if (result.length > 0) {

         if (result == "{001}") {
             alert("Transaction can not be save please try again");
             var objPaybutton = document.getElementById("btmBooked");
             if (objPaybutton != null) {
                 objPaybutton.style.display = "block";
             }
         }
         else if (result == "{100}") 
         {
             alert("There is an error in savign the information, please select your flight again.");
             location.reload(true);
         }
         else if (result == "{101}") {
             alert("One of your selected flight is full, please select your flight again.");
             location.reload(true);
         }
         else {
             var strArr = result.split("|");
             if (strArr[0] == "00") {
                 window.location = "https://www.paysbuy.com/api_payment/paynow.aspx" + strArr[1];
             }
             else {
                 alert(strArr[1]);
             }
         }
         
     }
     else {
         alert("There is an error in saving data please try again.");
         var objPaybutton = document.getElementById("btmBooked");
         if (objPaybutton != null) {
             objPaybutton.style.display = "block";
         }
     }
     
 }
function SuccessSaveBooking(result) {

    if (result.length > 0) 
    {
        if (result == "{100}") {
            alert("There is an error in savign the information, please select your flight again.");
            location.reload(true);
        }
        else {
            var arrResult = result.split("|");

            if (arrResult[0] == 0) {
                var objMain = document.getElementById("dvMain");
                objMain.innerHTML = arrResult[1];
                objMain = null
            }
            else if (arrResult[0] == 1) {
                alert("Flight Full, please selected other flight.");
            }
            else if (arrResult[0] == 2) {
                alert("Payment need to be save before booking create.");
            }
            else if (arrResult[0] == 3) {
                alert("Agency Credit not Enough.");
            }
            else if (arrResult[0] == 4) {
                alert("Payment need to be save before booking create.");
            }
        }
    }
    else {
        alert("The selected flight are full.\nPlease select other flight");
    }
    
    var objPaybutton = document.getElementById("btmBooked");
    if (objPaybutton != null) {
        objPaybutton.style.display = "block";
    }
    
}

function SaveBankTransfer() {

    var objBankName = document.getElementById("txtBankName");
    var objPaidDate = document.getElementById("txt_CarDate");
    var objPaidTime = document.getElementById("txtPaidTime");
    var objTitle = document.getElementById("stTitle");
    var objFirstname = document.getElementById("txtFirstname");
    var objLastname = document.getElementById("txtLastname");
    var objTotalAmount = document.getElementById("tdTotalAmount");
    
    var strPaymentXml = "<payment>" +
                            "<payment_type>BT</payment_type>" +
                            "<payment_amount>" + objTotalAmount.innerHTML + "</payment_amount>" +
                            "<payment_date>" + objPaidDate.value + "</payment_date>" +
                            "<payment_time>" + objPaidTime.value + "</payment_time>" +
                            "<title>" + objTitle.options[objTitle.selectedIndex].value + "</title>" +
                            "<firstname>" + objFirstname.value + "</firstname>" +
                            "<lastname>" + objLastname.value + "</lastname>" +
                            "<bank_name>" + objBankName.value + "</bank_name>" +
                        "</payment>";

    alert(strPaymentXml);


    objBankName = null;
    objPaidDate = null;
    objPaidTime = null;
    objTitle = null;
    objFirstname = null;
    objLastname = null;
    objTotalAmount = null;
}

function SuccessSaveBankTransfer(result) {

}
function PaymentType_Check() 
{
    var objCreditCard = document.getElementById("rdoCreditCard");
    var objVoucher = document.getElementById("rdoVoucher");
    var objTotalPrice = document.getElementById("spSumAmount");
    var objHiddenPrice = document.getElementById("hdTotalPrice");
    var objVoucherSection = document.getElementById("dvVoucherSection");
    
    var num = Number(objHiddenPrice.value.replace(/\,/g, ''));
    
    objVoucherSection.style.display = "none";
    
    if (objCreditCard.checked == true) {
        //objTotalPrice.innerHTML = ((num * .04) + num).toFixed(2);
    }
    else if (objVoucher.checked == true) 
    {
        objVoucherSection.style.display = "block";
    }
    else 
    {
        objTotalPrice.innerHTML = num.toFixed(2);
    }

    objTotalPrice.innerHTML = addCommas(objTotalPrice.innerHTML);
    
    objTotalPrice = null;
    objCreditCard = null;
    objVoucher = null;
    objHiddenPrice = null;
    objVoucherSection = null;
}
function PaymentVoucher() 
{
    var strXML = "";
    var iNumberOfSegment = document.getElementById("txtNumberOfSegment").value;
    var iNumberOfPassenger = document.getElementById("txtNumberOfPax").value;

    var objVoucherNumber = "";
    var objOrigin = "";
    var objDestination = "";
    var bPassValidation = true;
    var objPaybutton = document.getElementById("btmBooked");
    
    for (var i = 1; i <= iNumberOfSegment; i++) 
    {
        for (var j = 1; j <= iNumberOfPassenger; j++) 
        {
            objVoucherNumber = document.getElementById("txtVoucherNum_" + i + "_" + j);

            if (objVoucherNumber.value.length == 0)
            {
                alert("Please filled in all Voucher information of Flight Number " + document.getElementById("tdFlightNum_" + i).innerHTML + "!!");
                bPassValidation = false;
                break;
            }
            else 
            {
                strXML = strXML + "<voucher>\n" +
                                  "  <voucher_number>" + objVoucherNumber.value + "</voucher_number>\n" +
                                  "  <origin_rcd>" + document.getElementById("tdOri_" + i).innerHTML + "</origin_rcd>\n" +
                                  "  <destination_rcd>" + document.getElementById("tdDest_" + i).innerHTML + "</destination_rcd>\n" +
                                  "</voucher>\n";
            }

        }
        if (bPassValidation == false) 
        {break;}
    }
    if (bPassValidation == true) {
        HappyAirway.Webservice.wsCoreService.PaymentVoucher("<voucher_payment>\n" + strXML + "</voucher_payment>",
                                                            strBookingInfo,
                                                            SuccessPaymentVoucher,
                                                            ServiceError,
                                                            ServiceTimeOut);
    }
    else {
        if (objPaybutton != null) {
            objPaybutton.style.display = "block";
        }
    }
}
function SuccessPaymentVoucher(result) 
{
    var arr = result.split("|");

    if (arr.length > 1) 
    {
        if (arr[0] == 0) 
        {
            SuccessSaveBooking(result);
        }
        else 
        {
            var strErr = "";
            var arrDetail;
            for (var i = 0; i < arr.length; i++) {
                arrDetail = arr[i].split("{}");
                if (arrDetail[1] == 1) {
                    strErr = strErr + "Voucher Number " + arrDetail[0] + " Password not match!!\n";
                }
                else if (arrDetail[1] == 2) {
                    strErr = strErr + "Voucher Number " + arrDetail[0] + " all amount are used!!\n";
                }
                else if (arrDetail[1] == 3) {
                    strErr = strErr + "Voucher Number " + arrDetail[0] + " Route not match!!\n";
                }
                else if (arrDetail[1] == 4) {
                    strErr = strErr + "No voucher found!!\n";
                }
                else if (arrDetail[1] == 5) {
                    strErr = strErr + "One of the voucher not found!!\n";
                }
            }
            alert(strErr);
            arrDetail = null;
        }
    }
    else 
    {
        alert("Voucher payment failed!!");
    }
    arr = null;
    var objPaybutton = document.getElementById("btmBooked");
    if (objPaybutton != null) {
        objPaybutton.style.display = "block";
    }
}
