function getFlightAvailabilityForm() {
    // Start new calendar
    if (document.getElementById('calendarwrapper') != null) {
        document.getElementById('calendarwrapper').style.visibility = "hidden";
        document.getElementById('calendarwrapper').style.display = "none";
    }
    // End new calendar
    var inf = chkInfant();
    if (!inf) return;


    var ctrFrom = document.getElementById('uxOrigin');
    var ctrTo = document.getElementById('uxDest');
    var ctrAdult = document.getElementById('optAdult')
    var ctrChild = document.getElementById('optChild')
    var ctrInfant = document.getElementById('optInfant')
    var optBDClass = document.getElementById('optBDClass');

    var fromPort = ctrFrom.options[ctrFrom.selectedIndex].value;
    var toPort = ctrTo.options[ctrTo.selectedIndex].value;
    var adult = ctrAdult.options[ctrAdult.selectedIndex].value;
    var Child = ctrChild.options[ctrChild.selectedIndex].value;
    var Infant = ctrInfant.options[ctrInfant.selectedIndex].value;
    var BDClass = "";
    var chkOneway = document.getElementById('rd2');
    var dateReturn;
    var dateFrom;
    var dayRange = ctrTo.options[ctrTo.selectedIndex].getAttribute("day_range");

    if (optBDClass != null) BDClass = optBDClass.options[optBDClass.selectedIndex].value;
    optBDClass.options[optBDClass.selectedIndex].value;

    dateReturn = getdatetonew();

    if (chkOneway.checked == true) {
        dateReturn = '';

        dateFrom = getdatefromnew();

    }
    else {
        // Start New Calendar
        //dateReturn = getdateto();
        //dateFrom = getdatefrom();        
        dateReturn = getdatetonew();
        dateFrom = getdatefromnew();
        // End New Calendar


        var Df = new Date(Number(dateFrom.substring(0, 4)), Number(dateFrom.substring(4, 6)) - 1, Number(dateFrom.substring(6, 8)));
        var Dt = new Date(Number(dateReturn.substring(0, 4)), Number(dateReturn.substring(4, 6)) - 1, Number(dateReturn.substring(6, 8)));

        if (Dt < Df) {
            //alert('Flight date should be  more than Return date.')
            GetAlert('Alert_Message_15');
            return;
        }
    }
    //

    var FareSel = "";

    var isSearchGroup = "0";

    // Set Flag Value
    var transit_flag = "0";
    var direct_flag = "0";
    var require_passenger_title_flag = "0";
    var require_passenger_gender_flag = "0";
    var require_date_of_birth_flag = "0";
    var require_document_details_flag = "0";
    var require_passenger_weight_flag = "0";
    var show_redress_number_flag = "0";
    // Start Edit for checking Maximum passenger
    //wait();
    //tikAEROWebB2E.WebService.BaseService.getFlightAvailabilityForm(fromPort, toPort, getdatefrom(), dateReturn, adult, Child, Infant,BDClass, getFlightAvailabilityFormResult)
    var totalPassengers = parseInt(adult) + parseInt(Child) + parseInt(Infant);
    if (totalPassengers <= 12) {
        wait();
        // Start New Calendar
        //tikAEROWebB2E.WebService.BaseService.getFlightAvailabilityForm(fromPort, toPort, getdatefrom(), dateReturn, adult, Child, Infant, BDClass, getFlightAvailabilityFormResult)
     //   tikAEROWebB2E.WebService.BaseService.getFlightAvailabilityForm(fromPort, toPort, getdatefromnew(), dateReturn, adult, Child, Infant, BDClass, dayRange, getFlightAvailabilityFormResult);
        // End New Calendar

        tikAEROWebB2E.WebService.BaseService.getFlightAvailabilityForm(fromPort, toPort, dateFrom, dateReturn, adult, Child, Infant, BDClass, dayRange, ctrFrom.value, ctrTo.value,
     transit_flag, direct_flag, require_passenger_title_flag, require_passenger_gender_flag, require_date_of_birth_flag, require_document_details_flag,
     require_passenger_weight_flag,show_redress_number_flag, getFlightAvailabilityFormResult);
    }
    else {
        GetAlert('Alert_Message_94');
        return;
    }
    // End Edit
}

function getFlightAvailabilityFormResult(result) {
    successed();

    document.getElementById('content').innerHTML = result;
    checkIsvalidFlight();

}

function getFlightAvailability(airportFrom, airportTo, dateFrom, dateTo) {
    tikAEROWebB2E.WebService.BaseService.getFlightAvailability(airportFrom, airportTo, dateFrom, dateTo, getFlightAvailabilityResult);
}

function getdatefrom() {
    var ddlMY_1 = document.getElementById('ddlMY_1');
    var ddlDate_1 = document.getElementById('ddlDate_1');

    return (ddlMY_1.options[ddlMY_1.selectedIndex].value + ddlDate_1.options[ddlDate_1.selectedIndex].value);
}
function getdateto() {
    var ddlMY_2 = document.getElementById('ddlMY_2');
    var ddlDate_2 = document.getElementById('ddlDate_2');
    return (ddlMY_2.options[ddlMY_2.selectedIndex].value + ddlDate_2.options[ddlDate_2.selectedIndex].value);

}

// Start new calendar
function getdatefromnew() {
    var txtFrom = document.getElementById("depart");
    var arrFrom = txtFrom.value.split('.');
    return arrFrom[2] + arrFrom[1] + arrFrom[0];
}
function getdatetonew() {
    var txtTo = document.getElementById("inbound");
    var arrTo = txtTo.value.split('.');
    return arrTo[2] + arrTo[1] + arrTo[0];
}
// End new calendar

function selectFlight() {
    var objOutwareRadio = document.getElementsByName('Outward');
    var objReturnRadio = document.getElementsByName('Return');
    var iCount;
    var o_flight_fare_id = '';
    var r_flight_fare_id = '';
    var O;
    var R;

    var checkDateTime4hour = '';

    iCount = objOutwareRadio.length;
    for (var i = 0; i < iCount; i++) {
        if (objOutwareRadio[i].checked == true) {
            o_flight_fare_id = objOutwareRadio[i].value;
            O = objOutwareRadio[i].id.replace("ot", "");
        }
    }

    //Find Return

    iCount = objReturnRadio.length;
    for (var i = 0; i < iCount; i++) {
        if (objReturnRadio[i].checked == true) {
            r_flight_fare_id = objReturnRadio[i].value;
            R = objReturnRadio[i].id.replace("rt", "");
        }
    }

    //alert(objOutwareRadio[O].parentNode.parentNode.cells[1].innerText)  
    //alert(objReturnRadio[R].parentNode.parentNode.cells[1].innerText)

    var hddOrg = document.getElementById('hddOrg');
    var hddDest = document.getElementById('hddDest');

    var hddDateFrom = document.getElementById('hddDateFrom');
    var hddDateTo = document.getElementById('hddDateTo');


    //Check 4 hour//
    //var d1 = new Date();
    //alert(d1)
    // var d2 = new Date(); 
    //d2.setUTCHours(d1.getUTCHours() -7, 0, 0, 0); 
    //alert(d2);

    //var cDate = new Date();     
    //var myintCDate=parseInt(cDate.getFullYear().toString()+PadLeft((cDate.getMonth()+1).toString(),'0',2)+ PadLeft(cDate.getDate().toString(),'0',2)  );

    //alert(myintCDate);
    // var dx = new Date();
    // var mySelDate = new Date();


    //alert(hddDateFrom.value);

    //var tOut = document.getElementById('o_dep_'+O).innerText;
    //alert(tOut.split(':')[0]+','+tOut.split(':')[1]);
    //alert(tOut.split(':')[2]+','+tOut.split(':')[3]);
    //var dO= new Date(cc.getFullYear() ,cc.getMonth() ,1,parseInt(tOut.split(':')[0]),parseInt(tOut.split(':')[1])); 
    //alert(document.getElementById('o_dep_'+O).innerText);



    if (hddDateTo != null) {
        //alert(hddDateFrom.value+'>'+hddDateTo.value+(parseInt(hddDateFrom.value)> parseInt(hddDateTo.value)))
        if (Number(hddDateFrom.value) > Number(hddDateTo.value)) {
            //alert('Please check your return Date! It must be equal to or higher than the Departure Date. ');
            GetAlert('Alert_Message_15');
            return;
        }
        else {
            //Date pass check time
            var cc = new Date();
            var tmp = new Date();


            if (Number(hddDateFrom.value) >= Number(hddDateTo.value)) {
                if (objReturnRadio != null) {



                    if (document.getElementById('o_dep_' + O) == null) return;
                    if (document.getElementById('r_dep_' + R) == null) return;

                    var tOut = document.getElementById('o_dep_' + O).innerHTML; //objOutwareRadio[O].parentNode.parentNode.cells[1].innerText             
                    var tRet = document.getElementById('r_dep_' + R).innerHTML; //objReturnRadio[R].parentNode.parentNode.cells[1].innerText



                    // alert(checkDateTime4hour)
                    var dO = new Date(cc.getFullYear(), cc.getMonth(), 1, parseInt(tOut.split(':')[0]), parseInt(tOut.split(':')[1]));
                    var dR = new Date(cc.getFullYear(), cc.getMonth(), 1, parseInt(tRet.split(':')[0]), parseInt(tRet.split(':')[1]));
                    //alert(dO+","+dR)

                    var hrReturn = dateDiff("h", dO, dR, 1, 1);
                    //alert(hrReturn);
                    if (hrReturn <= 0) {
                        //alert("For Flights departing within 4 hours please contact Reservations on 0871 871 0717");
                        //alert('Please check your return Date! It must be equal to or higher than the Departure Date. ');
                        GetAlert('Alert_Message_15');
                        return;
                    }
                }
            }

        }
    }

    //var tabOutward = document.getElementsByName('tabOutward');
    //var tabReturn = document.getElementsByName('tabReturn');    
    //alert(tabOutward.innerHTML)
    //alert(objOutwareRadio.length)
    var tOut = document.getElementById('o_dep_' + O).innerHTML;
    if (tOut != null) {
        checkDateTime4hour = hddDateFrom.value + "_" + tOut.split(':')[0] + '_' + tOut.split(':')[1];
    }
    var hddtrip = document.getElementById('hddtrip');
    // alert(hddtrip.value)
    if (hddtrip.value == "0") {
        if ((o_flight_fare_id != "") && (r_flight_fare_id != "")) {
            //alert(checkDateTime4hour);
            wait();
            tikAEROWebB2E.WebService.BaseService.GetSelectFlight(o_flight_fare_id, r_flight_fare_id, checkDateTime4hour, selectFlightResult);
        }

    }
    else if ((hddtrip.value == "1")) {

        if ((o_flight_fare_id != "")) {
            //alert(checkDateTime4hour);
            wait();
            tikAEROWebB2E.WebService.BaseService.GetSelectFlight(o_flight_fare_id, r_flight_fare_id, checkDateTime4hour, selectFlightResult);
            // alert("Searching Flight");
        }

    }
    else {
    }


}
//('morning','tabOutward','m1')
//('morning','tabOutward',this,'time1')

function PadLeft(str, chr, len) {

    var mLen = (len - (str.toString().length));
    var ret = str;
    for (var i = 0; i < mLen; i++) {
        ret = chr + ret;
    }
    return ret;
}
function PadRight(str, chr, len) {

    var mLen = (len - (str.toString().length));
    var ret = str;
    for (var i = 0; i < mLen; i++) {
        ret = ret + chr;
    }
    return ret;
}


function ShowByTime(cTime, tabObjid, tabSel, timetab) {

    var tabObj = document.getElementById(tabObjid)
    var imgtab = document.getElementById(timetab);

    var str;
    var imgs = imgtab.getElementsByTagName('IMG');

    for (var i = 0; i < imgs.length; i++) {
        if (imgs[i].src.indexOf("icon_") >= 0) {
            imgs[i].src = imgs[i].src.replace("02.gif", "01.gif");
        }
    }

    tabSel.src = tabSel.src.replace("01.gif", "02.gif");

    //var tabSel = tabSel;//document.getElementById(tabSel);
    //var cssName = Array{"tab_am1","tab_pm1","tab_evening1","tab_all1"}; 

    IsVisibleRow('', '', tabObj);
    if (tabObj != null) {

        for (var i = 1; i < tabObj.rows.length; i++) {
            //Get Departure date Cell

            if (tabObj.rows[i].cells[1] != null) {
                if (cTime == 'all') {
                    showRow(tabObj.rows[i]);
                }
                else {
                    var cellTimes = tabObj.rows[i].cells[1].getElementsByTagName("DIV");
                    var cellTime = cellTimes[0].innerHTML
                    //alert(cellTime[0].innerHTML);
                    var isVisible = IsVisibleRow(cTime, cellTime);
                    if (isVisible) {
                        showRow(tabObj.rows[i]);
                    } else {
                        hideRow(tabObj.rows[i]);
                    }
                }
            }
        }
    }
}

function IsVisibleRow(cTime, nTime) {
    var cc = new Date();
    //var dO= new Date(cc.getFullYear() ,cc.getMonth() ,1,parseInt(obj.split(':')[0]),parseInt(obj.split(':')[1])); 

    var Dm1 = new Date(cc.getFullYear(), cc.getMonth(), 1, 24, 0);
    var Dm2 = new Date(cc.getFullYear(), cc.getMonth(), 2, 11, 0);
    var Dn1 = new Date(cc.getFullYear(), cc.getMonth(), 2, 10, 0);
    var Dn2 = new Date(cc.getFullYear(), cc.getMonth(), 2, 17, 0);
    var De1 = new Date(cc.getFullYear(), cc.getMonth(), 2, 16, 0);
    var De2 = new Date(cc.getFullYear(), cc.getMonth(), 2, 24, 0);

    var FilterTime = new Date(cc.getFullYear(), cc.getMonth(), 2, parseInt(nTime.split(':')[0]), parseInt(nTime.split(':')[1]));
    var isValid = false;
    switch (cTime) {
        case "morning":
            if ((FilterTime >= Dm1) && (FilterTime <= Dm2)) isValid = true;
            break;
        case "noon":
            if ((FilterTime >= Dn1) && (FilterTime <= Dn2)) isValid = true;
            break;
        case "evening":
            if ((FilterTime >= De1) && (FilterTime <= De2)) isValid = true;
            break;
    }
    return isValid;
}

function showRow(RoWobj) {
    //objOutwareRadio[O].parentNode.parentNode.cells[1].innerText
    RoWobj.style.display = "";
    //RoWobj.style.visibility="visible";
}

function hideRow(RoWobj) {
    RoWobj.style.display = "none";
    //RoWobj.style.visibility="hidden";

}

function dateDiff(p_Interval, p_Date1, p_Date2, p_firstdayofweek, p_firstweekofyear) {
    if (!isDate(p_Date1)) { return "invalid date: '" + p_Date1 + "'"; }
    if (!isDate(p_Date2)) { return "invalid date: '" + p_Date2 + "'"; }
    var dt1 = new Date(p_Date1);
    var dt2 = new Date(p_Date2);

    // get ms between dates (UTC) and make into "difference" date
    var iDiffMS = dt2.valueOf() - dt1.valueOf();
    var dtDiff = new Date(iDiffMS);

    // calc various diffs
    var nYears = dt2.getUTCFullYear() - dt1.getUTCFullYear();
    var nMonths = dt2.getUTCMonth() - dt1.getUTCMonth() + (nYears != 0 ? nYears * 12 : 0);
    var nQuarters = parseInt(nMonths / 3); //<<-- different than VBScript, which watches rollover not completion

    var nMilliseconds = iDiffMS;
    var nSeconds = parseInt(iDiffMS / 1000);
    var nMinutes = parseInt(nSeconds / 60);
    var nHours = parseInt(nMinutes / 60);
    var nDays = parseInt(nHours / 24);
    var nWeeks = parseInt(nDays / 7);


    // return requested difference
    var iDiff = 0;
    switch (p_Interval.toLowerCase()) {
        case "yyyy": return nYears;
        case "q": return nQuarters;
        case "m": return nMonths;
        case "y": 		// day of year
        case "d": return nDays;
        case "w": return nDays;
        case "ww": return nWeeks; 	// week of year	// <-- inaccurate, WW should count calendar weeks (# of sundays) between
        case "h": return nHours;
        case "n": return nMinutes;
        case "s": return nSeconds;
        case "ms": return nMilliseconds; // millisecond	// <-- extension for JS, NOT available in VBScript
        default: return "invalid interval: '" + p_Interval + "'";
    }
}
function isDate(p_Expression) {
    return !isNaN(new Date(p_Expression)); 	// <<--- this needs checking
}


function selectFlightResult(result) {
    successed();
    if (result != "") {
        alert(result);
    }
    else {
        loadstep3();
    }
    //document.getElementById('content').innerHTML=result;

}

function loadstep3() {
    tikAEROWebB2E.WebService.UtilService.loadstep3(loadstep3result);
}
function loadstep3result(result) {

    if (result == "session_expired") {
        alert("Session has been expired.\n Please login again ");
        loadLogout();
    }
    else {

        document.getElementById('content').innerHTML = result;
        checkOute();
        /*var hddBookingID_OFF = document.getElementById('hddBookingID_OFF');
        if(hddBookingID_OFF!=null)
        {
        // hddBookingID_OFF.value='<%=tikAEROWebB2E.BaseClass.Util.getCurrentBookingID();%>';
        alert(hddBookingID_OFF.value)
        }*/
        /*var hddActiveNext=document.getElementById('hddUs');
        hiddenQuote(false);
        if (hddActiveNext != null)
        {
        document.getElementById('BtnNext').style.visibility="hidden";
        }
        else
        {
        document.getElementById('BtnNext').style.visibility="visible";
        document.getElementById('BtnNext').style.display="block";
        }
        if(document.getElementById('Quote')==null){document.getElementById('dvQuoute').style.visibility="hidden";}
        */

    }
}
function checkOute() {

    var error = document.getElementById("dvError");

    if (error != null) {
        hiddenQuote(true);
    }
    else {
        hiddenQuote(false);
    }
}
function hiddenQuote(isHidden) {

    if (isHidden) {
        document.getElementById('trBtnNext').style.visibility = "hidden";
        document.getElementById('dvQuoute').style.visibility = "hidden";

    }
    else {
        //alert(document.getElementById('trBtnNext'))
        document.getElementById('dvQuoute').style.visibility = "visible";
        document.getElementById('trBtnNext').style.visibility = "visible";
    }
}
