
function getFlightAvailabilityForm()
{

   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;
    
    if(optBDClass!=null)BDClass=optBDClass.options[optBDClass.selectedIndex].value;
    optBDClass.options[optBDClass.selectedIndex].value;
    
    if (chkOneway.checked == true)
    {
       dateReturn = '';
    }
    else
    {
      dateReturn = getdateto();
      dateFrom = getdatefrom();
      

      
      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;
      }
    }
    //
    
    // 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();
        TikAeroWebB2E.WebService.BaseService.getFlightAvailabilityForm(fromPort, toPort, getdatefrom(), dateReturn, adult, Child, Infant, BDClass, getFlightAvailabilityFormResult)
    }
    else {
        // *** this alert position must changed to use WEMS too.
        alert('Not allowed to book more than 12 passengers total per on booking!');
        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);

}

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";  
}
}