﻿// JScript File

function formDate(paramInput,paramDays)
  {
    //it returns date in the format of dd/mm/yyyy
    //it adds paramDay days with the created date.
    var TempDate;
    if(paramInput!="")
    {
    var arrTempDate=paramInput.split("/");
    TempDate = new Date();
    //TempDate.setFullYear(arrTempDate[2],parseInt(arrTempDate[1])-1, parseInt(arrTempDate[0])+ parseInt(paramDays));
    //var res =parseInt(removeZero(arrTempDate[0]))+ parseInt(removeZero(paramDays)); 
    //alert(arrTempDate[0] + "+"+ paramDays + ", = "+ res );
     try
     {
       var _year = arrTempDate[2];
       var _month = arrTempDate[1]-1;
       var _dayFpart =removeZero(arrTempDate[0]);
       var _daySpart =removeZero(paramDays);
       //alert("_dayFpart :" + _dayFpart);
       //alert("_daySpart :" + _daySpart);
       var _day = parseInt(_dayFpart,10) + parseInt(_daySpart,10);
       
       //alert("_year : " + _year);
       //alert("_month : " + _month);
       //alert("_day : " + _day);
       TempDate.setFullYear(_year,_month,_day);
       //TempDate.setFullYear(arrTempDate[2],arrTempDate[1]-1, parseInt(removeZero(arrTempDate[0]),10)+ parseInt(removeZero(paramDays),10));
     }
     catch(e)
     {
      alert(e);
     }
    }
    //alert("Forming incomde date " + paramInput + ", days " + paramDays);
    //alert("Forming outgoing date " + TempDate);
    //alert(TempDate);
    return TempDate;
    
  }
  function removeZero(paramInput)
  {
   var sResult=paramInput;
   
   if(paramInput.length>1)
    {
     //alert("first string" + paramInput.substring(0,1));
     if(paramInput.substring(0,1)=="0")
       {
        sResult = paramInput.substring(1);
       }
    }
    //alert(paramInput + " in removeZero  = return parsed string is " + sResult);
    return sResult;
  }
  function compareDate(paramDate1,paramDate2)
  {
    //it compare then return 0 if equal. 1 if paramDate2 > paramDate1 . -1 if paramDate1 > paramDate2
    //alert("Compare before " + paramDate1 + "," + paramDate2);
    var curTempDate = formDate(paramDate1,0);
    var tempDate = formDate(paramDate2,0);
    //alert("Compare after "+ curTempDate + "," + tempDate);
    
   if(curTempDate!="" && tempDate!="") 
   {
    if(Number(curTempDate.getTime())==Number(tempDate.getTime())){return 0;}
    if(Number(curTempDate.getTime())>Number(tempDate.getTime())) {return -1;}
    if(Number(tempDate.getTime())>Number(curTempDate.getTime())) {return 1;}
   }
   return -2;// incase of error.
  }
  
  
  function IsInRange(flightDate,paramDate1,paramDate2)
  {
    //Returns 0 if flight date is within the range provided. if not returns 1.
    //alert(flightDate + "-" +paramDate1 + "-" +paramDate2  );
    var _iStatus = 1;
    var StartDate = formDate(paramDate1,0);
    var EndDate = formDate(paramDate2,0);
    var FlownDate = formDate(flightDate,0);
    //alert(FlownDate + "-" + StartDate + "-" + EndDate  );
   if(StartDate!="" && EndDate!="" && FlownDate!="") 
   {
    if((Number(FlownDate.getTime())>=Number(StartDate.getTime())) && (Number(FlownDate.getTime())<=Number(EndDate.getTime())) )
      {
       _iStatus = 0;
      }
   }
   //alert("IsInRange -" +  _iStatus);
   return _iStatus;// 
  }
  
  function IsFlownOnAfterEnroled(flightDate,enrolDate)
  {
    //Returns 0 if flight date is within the range provided. if not returns 1.
    //alert(flightDate + "-" +enrolDate  );
    var _iStatus = 1;
    
    var _flightDate = formDate(flightDate,0);
    var _enrolDate = formDate(enrolDate,0);
      
    
   if(_flightDate!="" && _enrolDate!="") 
   {
    if(Number(_flightDate.getTime())>=Number(_enrolDate.getTime()))
      {
       _iStatus = 0;
      }
   }
   //alert("IsFlownOnAfterEnroled -" +  _iStatus);
   return _iStatus;// 
  }


function isRetroEligible(paramRetroStartDate,paramRetroEndDate,paramEnrolStartDate,paramEnrolEndDate,paramflightDate)
{
 //returns  0 if all are success; if not returns 1 (fail case).
 var _iStatus = 1;//false setup
 
 /* Check for Retrospective period [current date and its 6 months prior date] (ABRP) */
 var jsRetroStartDate = paramRetroStartDate;
 var jsRetroEndDate = paramRetroEndDate;
 
 var jsEnrolStartDate = paramEnrolStartDate;
 var jsEnrolEndDate = paramEnrolEndDate;
 
 var objFlownDate= paramflightDate; //document.getElementById(paramClientIDcalendarPopup);
 //alert(objFlownDate.value);
 var jsFlownDate;
 if(objFlownDate!=null) 
 { // 1
     jsFlownDate = objFlownDate.value;
     if(IsInRange(jsFlownDate,jsRetroStartDate,jsRetroEndDate)==0) //success case
       { // 2
         //start checking for enrolment retrospective period [enrolment date and its 2 months prior date] (ABERP)
         if(IsFlownOnAfterEnroled(jsFlownDate,jsEnrolEndDate)==0) //flown on/after enrolled
           {
            _iStatus = 0;// final results
          
           }
           else //flown before enrolled
           {
             if(IsInRange(jsFlownDate,jsEnrolStartDate,jsEnrolEndDate)==0) // if success case
                {    
                    _iStatus = 0;// final results
                }  
                else
                {
                 alert("Flights taken more than two months prior to enrolment in the Skywards Programme are not eligible for retro credit of miles.");
                 objFlownDate.focus();
                }       
           }
           
       } // 2 
       else
       {
        alert("Flight flown does not qualify to earn Miles, as it is six months beyond the retrospective period.");
        objFlownDate.focus();
       }
    
 } // 1
 
 //alert("Ret last"+ _iStatus); 
 return _iStatus;
}
function showRetroPopup()
{
 //Open popup
 var width=400;
 var height = 400;
 var scrollbars='yes';
 var retroPopup = window.open("RetroPopup.aspx","RetroPopup",'width='+width+',height='+height+',scrollbars='+scrollbars);
}
var JsRetroValues = "";
function IsHavingFlight(vHaveFlightInfo,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12)
{
 if(vHaveFlightInfo=="False")
 {
    //Open popup
    var width=100;
    var height = 100;
    var scrollbars='yes';
    
    //Moving all values into Cookies to transfer the data onto popup window.
    
    //AppendCookie("MemberName",getText(c1,1));
    JsAppendCookie("ContactNo",JsGetText(c2,1));
    JsAppendCookie("MobileNo",JsGetText(c3,1));
    JsAppendCookie("EmailAddress",JsGetText(c4,1));
    JsAppendCookie("PasName",JsGetText(c5,1));
    JsAppendCookie("PasNameInTt",JsGetText(c6,1));
    JsAppendCookie("FlightDate",JsGetText(c7,1));
    JsAppendCookie("FltOrigin",JsGetText(c8,1));
    JsAppendCookie("FltDestination",JsGetText(c9,1));
    JsAppendCookie("FlightNo",JsGetText(c10,1));
    JsAppendCookie("Ticket1",JsGetText(c11,1));
    JsAppendCookie("Ticket2",JsGetText(c12,1));
    
    //Create cookie
    JsSetCookie("JsRetroElements",JsRetroValues,5);
    
        
    var retroPopup = window.open("RetroPopup.aspx","RetroPopup",'width='+width+',height='+height+',scrollbars='+scrollbars);
 }
}



function JsGetText(Target,isControl)
  {
    
    var tempObjec = null;
    if(isControl==0) 
    {
        tempObjec = document.getElementById(Target);
    }
    else
    {
        tempObjec = Target;
    }
    
    if(tempObjec.type=="select-one")
    {
      return tempObjec.options[tempObjec.selectedIndex].value;
    }
    
    if(tempObjec.type=="text"||tempObjec.type=="hidden")
    {
      return tempObjec.value;
    }
    
    return "";
  }
  
  function JsAppendCookie(key,value)
  {
   var ItemSeparator="**";
   var ItemValueSeparator="*";
   if(value=="")
   {
    value=" ";
   }
   if(JsRetroValues!="")
   {
    JsRetroValues = JsRetroValues + ItemSeparator + key + ItemValueSeparator + value ;
   }
   else
   {
    JsRetroValues = key + ItemValueSeparator + value ;
   }
  }
  
  function JsSetCookie(c_name,value,expiredays)
  { 
    var exdate=new Date();
    exdate.setTime(exdate.getTime()+ 1000 * 60 * parseInt(expiredays,10));
    //exdate.setDate(exdate.getTime() + expiredays);
    document.cookie=c_name+ "=" + value +((expiredays==null) ? "" : ";expires="+exdate.toGMTString())
    //alert(c_name+ "=" +escape(value)+((expiredays==null) ? "" : ";expires="+exdate.toGMTString()));
  }
