//-----------------------Function Call Sample----------------------------------------------
    //function TestScript()
    //{
    //    tikAeroB2C.WebService.B2cService.HelloWorld(showResult, showError, showTimeOut);    
    //}
//-----------------------------------------------------------------------------------------
var isClose = true;
var today = new Date();
var objLanguage;
var g_strIpAddress = "";

Date.prototype.format = function(format)
			                {    
			                var date = this;    
			                if (!format)      
			                format="MM/dd/yyyy";
                            var month = date.getMonth() + 1;    
                            var year = date.getFullYear();         
                            format = format.replace("MM",month.toString().padL(2,"0"));             
                            if (format.indexOf("yyyy") > -1)        
                                format = format.replace("yyyy",year.toString());    
                            else if (format.indexOf("yy") > -1)        
                                format = format.replace("yy",year.toString().substr(2,2));
                                
                            format = format.replace("dd",date.getDate().toString().padL(2,"0"));     
                            var hours = date.getHours();           
                            if (format.indexOf("t") > -1)    
                            {       
                                if (hours > 11)        
                                    format = format.replace("t","pm")       
                                else        
                                    format = format.replace("t","am")    
                            }    
                            if (format.indexOf("HH") > -1)
                                format = format.replace("HH",hours.toString().padL(2,"0"));
                            if (format.indexOf("hh") > -1)
                            {
                                if (hours > 12) hours - 12;        
                                    if (hours == 0) hours = 12;        
                                        format = format.replace("hh",hours.toString().padL(2,"0"));            
                            }    
                            if (format.indexOf("mm") > -1)       
                                format = format.replace("mm",date.getMinutes().toString().padL(2,"0"));    
                            if (format.indexOf("ss") > -1)       
                                format = format.replace("ss",date.getSeconds().toString().padL(2,"0"));    
                            return format;
                            }
function showError(result)
{
    if(result != null)
    {
        if(document.getElementById("dvMessageBox").style.display == "none")
        {
            ShowProgressBar(true);
            ShowMessageBox("Session timed out, please click on refresh to continue.", 0,'reload');
        }
    }
    
}
function showTimeOut(result)
{
    if(result != null)
    {
        if(result.get_message().indexOf("ClearSession")<0)
        {
            if(document.getElementById("dvMessageBox").style.display == "none")
            {
                ShowProgressBar(true);
                ShowMessageBox("Session timed out, please click on refresh to continue.", 0,'reload');
            }
        }
    }
    
}
function showErrorPayment(result)
{
    if(result != null)
    {
        if(document.getElementById("dvMessageBox").style.display == "none")
        {
            ShowLoadBar();
            ShowMessageBox("Session timed out, please click on refresh to continue.", 0,'reload');
        }
    }
}
function showTimeOutPayment(result)
{
    if(result != null)
    {
        if(document.getElementById("dvMessageBox").style.display == "none")
        {
            ShowLoadBar();
            ShowMessageBox("Session timed out, please click on refresh to continue.", 0,'reload');
        }
    }
}
//-------------------------------------------
//  Used to clear session and release seat
//  when close browser.
//-------------------------------------------
function CloseSession()
{
    if (isClose == true)
    {
       tikAeroB2C.WebService.B2cService.ClearSession(showError, showTimeOut);
    }
    else
    { isClose = true; }
}

document.onkeydown = checkKeycode;
document.onmousedown = somefunction;

function checkKeycode(e) {
	var keycode;
	if (window.event)
	{keycode = window.event.keyCode;}
	else if (e)
	{keycode = e.which;}
	
	//Check F5
	if(keycode == 116)
	{
		isClose = false;
	}
}
function somefunction(e)
{
    if (navigator.appName.indexOf('Microsoft') == 0)
    {
        var tagName = "";
	    if (window.event)
	    {tagName = window.event.srcElement.tagName;}
	    else if (e)
	    {tagName = e.target.tagName;}
    	
    	if(tagName != null)
    	{
    	    if(tagName.toUpperCase() == "A")
	        { isClose = false; }
    	}
	    
    }
}
//---------------------------
//End Clear session function.
//---------------------------

function ClearOptions(selectObj)
{
	var selectParentNode = selectObj.parentNode;
	var newSelectObj = selectObj.cloneNode(false); // Make a shallow copy
	selectParentNode.replaceChild(newSelectObj, selectObj);
	return newSelectObj;
}
function FindControlName(tagName, ctrlName)
{
    var strName = "";
    var objCtrl = document.getElementsByTagName(tagName);
    
    for(var iCount=0;iCount<objCtrl.length;iCount++)
    {
        if(objCtrl[iCount].id.indexOf(ctrlName) != -1)
        {
            strName = objCtrl[iCount].id.toString();
            break;
        }
    }
    
    objCtrl = null;
    return strName;
}
function SetComboValue(ctrlName, strValue)
{
    var ctrCombo = document.getElementById(ctrlName);
    for(var iCount = 0;iCount < ctrCombo.length;++iCount)
    {
        if(ctrCombo.options[iCount].value == strValue)
        {
            ctrCombo.selectedIndex = iCount;
            break;
        }
    }
    
    ctrCombo = null;
}
function SetComboSplitValue(ctrlName, strValue, index)
{
    var ctrCombo = document.getElementById(ctrlName);
    for(var iCount = 0;iCount < ctrCombo.length;++iCount)
    {
        if(ctrCombo.options[iCount].value.split("|")[index] == strValue)
        {
            ctrCombo.selectedIndex = iCount;
            break;
        }
    }
    
    ctrCombo = null;
}
function ShowProgressBar(bValue)
{
    var obj = document.getElementById("dvProgressBar");
    var objLoader = document.getElementById("dvLoad");
    
    document.getElementById("dvLoadBar").style.display = "none"
    
    if(bValue == true)
    { 
        objLoader.style.display = "block"
        obj.style.display = "block"; 
    }
    else
    {
        objLoader.style.display = "none"
        obj.style.display = "none"; 
    }
    
    obj = null;
    objLoader = null;
}
function ShowLoadBar()
{
    var obj = document.getElementById("dvProgressBar");
    var objLoader = document.getElementById("dvLoadBar");
    
    document.getElementById("dvLoad").style.display = "none"
    document.getElementById("dvMessageBox").style.display = "none"
    
    if(obj.style.display == "none")
    {
        objLoader.style.display = "block" 
        obj.style.display = "block"; 
    }
    else
    {
        objLoader.style.display = "none";
        obj.style.display = "none"; 
    }
    
    obj = null;
    objLoader = null;
}
function loadHome()
{
    var strParameterValue = getRequestParameter("langculture");
    if(strParameterValue.length > 0)
    {
       //SuccessChangelang(strParameterValue);
       // P'ang old version document.location.reload(); 
      var myText = new String(document.location.toString()); 
	  myText = myText.replace("Finish=Yes&","");
	  document.location.href = myText;
    }
    else
    {        
        tikAeroB2C.WebService.B2cService.ClearSession(SuccessLoadHomePage, showError, showTimeOut);
    }
    
}
function SuccessLoadHomePage(result)
{   
    window.location.href = "http://" + window.location.href.split("//")[1];
}
function SucessLoadAvailabilitySearch(result)
{
    var objAvailabilitySearch = document.getElementById("dvAvailabilitySearch");
    objAvailabilitySearch.innerHTML = result;
    objAvailabilitySearch = null;
    
    //If Login show redeem button
    if(document.getElementById("dvRedMenu").style.display == "block")
    {
        document.getElementById("dvSearchRedeem").style.display = "block";
    }
}
function FindOptionIndexByValue(ctrName, value)
{
    var objOption = document.getElementById(ctrName);
    var iCount = 0;
    for(iCount = 0;iCount < objOption.length;++iCount)
    {
        if(objOption.options[iCount].value == value)
        {
            iCount;
            break;
        }
    }
    return iCount;
}

function ReformatDate(strDate)
{   
    if(strDate == "DD/MM/YYYY" || strDate == "__/__/____")
    {
        return "";
    }
    else
    {
        var day = strDate.substring(0,2);
        var month = strDate.substring(3,5);
        var year = strDate.substring(6,10);
        
        return year + "-" + month + "-" + day;
    }
}
function ReformatDateXml(strDate)
{   
    if(strDate == "DD/MM/YYYY" || strDate == "__/__/____")
    {
        return "0001-01-01T00:00:00";
    }
    else
    {
        var day = strDate.substring(0,2);
        var month = strDate.substring(3,5);
        var year = strDate.substring(6,10);
        
        return year + "-" + month + "-" + day;
    }
}

function ReformatXmlViewDate(strDate)
{   
    if(strDate.length > 0)
    {
        var day = strDate.substring(8,10);
        var month = strDate.substring(5,7);
        var year = strDate.substring(0,4);
        
        return day + "/" + month + "/" + year;
    }
    else
    {
        return "";
    }
}
function LTrim( value ) 
{
    var re = /\s*((\S+\s*)*)/;
    return value.replace(re, "$1");
}

function RTrim( value ) 
{
    var re = /((\s*\S+)*)\s*/;
    return value.replace(re, "$1");
}
  
function trim( value ) 
{
    return LTrim(RTrim(value));
}
function leadingZero(nr)
{
	if (nr < 10) nr = "0" + nr;
	return nr;
}
function printReport(reportType, reportTitle)
{
    var arrUrl = window.location.href.split("//")[1].split('/');
    var strUrl = "";

    for(var i=0;i<(arrUrl.length-1);i++)
    {strUrl = strUrl + arrUrl[i] + "/";}
    
    window.open("http://" + strUrl + "print.aspx?type=" + reportType, reportTitle,"scrollbars=1,status=1,toolbar=0","");
}
function EmailItinerary()
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.SendItineraryEmail(SuccessEmailItinerary, showError, showTimeOut);
}
function SuccessEmailItinerary(result)
{
    ShowProgressBar(false);
    ShowMessageBox("Email Sent..", 1,'');
}
function setCookie(strName, strValue, dExpires, strPath, strDomain, bSecure)
{
 	var strCookieText = escape(strName) + '=' + escape(strValue);
	strCookieText +=	(dExpires ? '; EXPIRES=' + dExpires.toGMTString() : '');
	strCookieText += 	(strPath ? '; PATH=' + strPath : '');
	strCookieText += 	(strDomain ? '; DOMAIN=' + strDomain : '');
	strCookieText += 	(bSecure ? '; SECURE' : '');
	
	document.cookie = strCookieText;
}
function getCookie(strName)
{
 	var strValue =	  null;
	if(document.cookie)	   //only if exists
	{
       	var arr = document.cookie.split((escape(strName) + '=')); 
       	if(2 <= arr.length)
       	{
           	var arr2 = arr[1].split(';');
       		strValue = unescape(arr2[0]);
       	}
	}
	return strValue;
}
function deleteCookie(strName)
{
 	var tmp = getCookie(strName);
	if(tmp) 
	{ setCookie(strName,tmp,(new Date(1))); }
}
function IsFutureDate(strDate)
{   
    var bResult = false;
    
    //Reformat Date value to be yyyy-MM-DD
    strDate = ReformatDate(strDate);
    
    if (strDate.length > 0)
    {
        var arrDate = strDate.split("-")
        var dDate = new Date(arrDate[0], arrDate[1] - 1, arrDate[2]);
        var dToday = new Date();
        
        if (dDate > dToday)
        {
            bResult = true;
        }
        else
        {
            bResult = false;
        }
        dDate = null;
        dToday = null;
    }
    else
    {
        bResult = true;
    }
    
    return bResult;
}
function IsPastDate(strDate)
{
    var bResult = false;
    
    //Reformat Date value to be yyyy-MM-DD
    strDate = ReformatDate(strDate);
  
    if (strDate.length > 0)
    {
        var arrDate = strDate.split("-")
        var dDate = new Date(arrDate[0], arrDate[1] - 1, arrDate[2]);
        var dToday = new Date();
        
        if (dDate < dToday)
        {
            bResult = true;
        }
        else
        {
            bResult = false;
        }
        dDate = null;
        dToday = null;
    }
    else
    {
        bResult = true;
    }
    
    return bResult;
}
function ShowMessageBox(strMessage, iType, callBack)
{
    //iType
    //  0 = Error.
    //  1 = Information.
    
    var obj = document.getElementById("dvProgressBar");
    var objErrorMsg = document.getElementById("dvErrorMessage");
    var objIcon = document.getElementById("dvMessageIcon");
    var objMessage = document.getElementById("dvMessageBox");
    
    document.getElementById("dvLoadBar").style.display = "none"
    document.getElementById("dvLoad").style.display = "none"
    
    //Show and hide Icon.
    if(iType != 0)
    { objIcon.style.display = "none" ;}
        

    //Show or hide fading.
    if(objMessage.style.display == "none")
    {    
        objErrorMsg.innerHTML = strMessage;
        obj.style.display = "block";
        objMessage.style.display = "block";
        if(callBack == "reload")
        {
            document.getElementById("dvMessageButtonText").innerHTML = "Refresh"
        }
        objMessage.setAttribute('CallBack', callBack);
    }
    else
    {
        // Callback Function
        if(objMessage.getAttribute("CallBack") != null && objMessage.getAttribute("CallBack") != '')
        {
            if(objMessage.getAttribute("CallBack") == 'loadHome')
            {
                obj.style.display = "none"; 
                objMessage.style.display = "none";
                loadHome();
            }
            if(objMessage.getAttribute("CallBack") == 'reload')
            {
                location.reload(true);
            }
        }
        else
        {
            if(document.getElementById("dvFormHolder").style.display == "none")
            {
                obj.style.display = "none"; 
            }
            objMessage.style.display = "none";
        }
    }
    
    
    
    obj = null;
    objErrorMsg = null;
    objIcon = null;
    objMessage = null;
    
}
function LoadCob(bParameter, bookingId)
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.LoadCob(bParameter, bookingId, SuccessLoadCob, showError, showTimeOut);
}
function SuccessLoadCob(result)
{
    if(result != "{000}")
    {
        var objContainer = document.getElementById("dvContainer");
        
        objContainer.innerHTML = result;
        
        //Hide Side pannel
        ShowPannel(false);
        
        ShowProgressBar(false);
        objContainer = null;
    }
    else
    {
        LoadSecure(true);
    }
}
function Changelang(strLanguage)
{
    tikAeroB2C.WebService.B2cService.SetLanguage(strLanguage, SuccessChangelang, showError, showTimeOut);
}
function SuccessChangelang(result)
{
    var objLang = document.getElementById("hdLang");
    objLang.value = result;
    objLang = null;
    
    document.forms[0].submit();
}
function getRequestParameter(strName) {
    strName = strName.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
    
    var regexS = "[\\?&]"+strName+"=([^&#]*)";
    var regex = new RegExp( regexS );
    var results = regex.exec( window.location.href );
    
    if( results == null )
        return "";
    else
        return results[1];
}
function LoadCMS(strUrl)
{
    var strParameter = getRequestParameter("langculture");
    var strParameterlang = getRequestParameter("lang");
    
    if(strParameter.length > 0)
    {
        strUrl = strUrl + "?langculture=" + strParameter + "&lang=" + strParameterlang;
    }
    
    ShowProgressBar(true);
    window.location.href = strUrl;
    //tikAeroB2C.WebService.B2cService.LoadCms(strUrl, SuccessLoadCMS, showError, showTimeOut);
}
function SuccessLoadCMS(result)
{
    var objContainer = document.getElementById("dvContainer");
    
    objContainer.innerHTML = result;
    
    ShowProgressBar(false);
    objContainer = null;
}

function CreateWnd(file, width, height, resize)
{
	var doCenter = false;
  	
	attribs = "";

	if(resize) size = "yes"; else size = "no";

	for(var item in window)
		{ if(item == "screen") { doCenter = true; break; } }

	if(doCenter)
	{
		if(screen.width <= width || screen.height <= height) size = "yes";

		WndTop  = (screen.height - height) / 2;
		WndLeft = (screen.width  - width)  / 2;
		attribs = "width=" + width + ",height=" + height + ",resizable=" + size + ",scrollbars=" + size + "," + 
		"status=no,toolbar=no,directories=no,menubar=no,location=no,top=" + WndTop + ",left=" + WndLeft;
	}
	else
	{
		if(navigator.appName=="Netscape" && navigator.javaEnabled())
		{
			var toolkit = java.awt.Toolkit.getDefaultToolkit();
			var screen_size = toolkit.getScreenSize();
			if(screen_size.width <= width || screen_size.height <= height) size = "yes";

			WndTop  = (screen_size.height - height) / 2;
			WndLeft = (screen_size.width  - width)  / 2;
			attribs = "width=" + width + ",height=" + height + ",resizable=" + size + ",scrollbars=" + size + "," + 
			"status=no,toolbar=no,directories=no,menubar=no,location=no,top=" + WndTop + ",left=" + WndLeft;
		}
		else
		{
			size = "yes";
			attribs = "width=" + width + ",height=" + height + ",resizable=" + size + ",scrollbars=" + size + "," + 
			"status=no,toolbar=no,directories=no,menubar=no,location=no";
		}
	}

	// create the window
	window.open(file, "", attribs);
	
}

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 CheckDateFormat(strDate)
{
    var fdate = strDate.split('/');

     if(fdate.length<3)return false;

     var lenStr = strDate.replace('/','');
        lenStr=lenStr.replace('/','');
      
     if(lenStr.toString().length!=8) return false;
    
     return true;
}
function padZeros(theNumber, max) {
    var numStr = String(theNumber);

    while ( numStr.length < max) {
        numStr = '0' + numStr;
    }

    return numStr;
}

function ClientLogon()
{
    ShowProgressBar(true);
    
    tikAeroB2C.WebService.B2cService.ClientLogon(document.getElementById('txtClientID').value, 
        document.getElementById('txtPassword').value, SuccessClientLogon, showError, showTimeOut);
        
}
function SuccessClientLogon(result)
{
    if (result == '{000}')
    {
        LoadMenu();
        document.getElementById("dvRedMenu").style.display = "block";
        document.getElementById("dvSearchRedeem").style.display = "block";

        tikAeroB2C.WebService.B2cService.LoadClientInformation(SuccessLoadClientLogonInformation, showError, showTimeOut);
        tikAeroB2C.WebService.B2cService.LoadMyBooking(SuccessLoadMyBooking, showError, showTimeOut);

        //Hide menu
        ShowPannel(true);
        DisplayLogin();
        //if(window.location.href.indexOf("https") == -1)
        //{ LoadHttps(); }
    }
    else
    {
        ShowProgressBar(false);
        if (arrResult[1] = "Error,Can't Logon.") {
            ShowMessageBox("Incorrect membership number and/or password", 0, '');
        }
        else {
            ShowMessageBox(arrResult[1], 0, '');
        }
    }
    
}

function ClientLogonDialog()
{
    CloseDialog();
    ShowProgressBar(true);
    
    tikAeroB2C.WebService.B2cService.ClientLogon(document.getElementById('txtDialogClientID').value, 
        document.getElementById('txtDialogPassword').value, SuccessClientLogon, showError, showTimeOut);
        
}

function CloseDialog()
{
    var objMessage = document.getElementById("dvFormHolder");
    objMessage.style.display = "none";
    var objContainer = document.getElementById("dvProgressBar");
    objContainer.style.display = "none";
}

function MyBookingSearch()
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.MyBookingSearch(document.getElementById('txtBookingCode').value, SuccessMyBookingSearch, showError, showTimeOut);
}
function SuccessMyBookingSearch(result)
{
    var objContainer = document.getElementById("dvSearch");
    var objBox = document.getElementById("dvResultBox");
    var objBookingBox = document.getElementById("dvBookingBox");
    
    objBox.style.display = 'block';
    objBookingBox.style.display = 'none';
    objContainer.innerHTML = result;
    
    ShowProgressBar(false);
    objContainer = null;
    
}

function LoadMyBooking()
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.LoadMyBooking(SuccessLoadMyBooking, showError, showTimeOut);
    //Refresh Flight Selection Box
    tikAeroB2C.WebService.B2cService.LoadSearchAvailability(SucessLoadAvailabilitySearch, showError, showTimeOut);
}
function SuccessLoadMyBooking(result)
{   
    var objContainer = document.getElementById("dvContainer");
    objContainer.innerHTML = result;
    //Show Side pannel
    ShowPannel(true);
    
    ShowProgressBar(false);
    objContainer = null;
}

function LoadMilleageDetail()
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.LoadMilleageDetail(SuccessLoadMilleageDetail, showError, showTimeOut);
    //Refresh Flight Selection Box
    tikAeroB2C.WebService.B2cService.LoadSearchAvailability(SucessLoadAvailabilitySearch, showError, showTimeOut);
}
function SuccessLoadMilleageDetail(result)
{   
    var objContainer = document.getElementById("dvContainer");
    
    objContainer.innerHTML = result;

    ShowProgressBar(false);
    objContainer = null;
}

function LoadBookingDetail(bookingId, errorMSG)
{
    if(bookingId == '')
        ShowMessageBox(errorMSG,0,'');
    else
    {
        ShowProgressBar(true);
        tikAeroB2C.WebService.B2cService.LoadBookingDetail(bookingId,SuccessLoadBookingDetail, showError, showTimeOut);   
    }
}
function SuccessLoadBookingDetail(result)
{   
    var objContainer = document.getElementById("dvContainer");
    
    objContainer.innerHTML = result;
    
    //Hide Side pannel
    ShowPannel(false);
    
    ShowProgressBar(false);
    window.scrollTo(0,0); 
    objContainer = null;
}

function ClientLogOff()
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.ClientLogOff(SuccessClientLogOff, showError, showTimeOut);
    //Refresh Flight Selection Box
    tikAeroB2C.WebService.B2cService.LoadSearchAvailability(SucessLoadAvailabilitySearch, showError, showTimeOut);
}
function SuccessClientLogOff(result)
{   
    var objLogon = document.getElementById("dvClientInfo");   
    objLogon.innerHTML = result;

    var objContainer = document.getElementById("dvContainer");    
    objContainer.innerHTML = "";
    
    document.getElementById("dvRedMenu").style.display = "none";
    
    LoadMenu();
    loadHome();
    
    deleteCookie("coFFP");
    //Show blue menu
    DisplayHomePageNotLogin();
    
    ShowProgressBar(false);
    objContainer = null;
}

function SubmitEnterUser(myfield,e,isDialog)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13)
    {
        if(isDialog == 'false')
            ClientLogon();
        else
            ClientLogonDialog();
        return false;
    }
    else
        return true;
}

function LoadForgetPassword()
{
    CloseDialog();
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.LoadForgetPassword(SuccessLoadForgetPassword, showError, showTimeOut);   
}
function SuccessLoadForgetPassword(result)
{   
    var objContainer = document.getElementById("dvContainer");
    
    objContainer.innerHTML = result;

    ShowProgressBar(false);
    objContainer = null;
}

function ForgetPassword()
{
    ShowProgressBar(true);
    var url = window.location;
    tikAeroB2C.WebService.B2cService.ForgetPassword(document.getElementById('txtUserID').value ,
                                                    url.href,
                                                    SuccessForgetPassword, 
                                                    showError, 
                                                    showTimeOut);   
}
function SuccessForgetPassword(result)
{   
    if(result.length > 0)
    {
        if(result == "100")
        {
            ShowMessageBox("Error,Client id isn't valid",0,"");
        }
        else if(result == "101")
        {
            ShowMessageBox("Error,Cann't reset password.",0,"");
        }
        else
        { ShowMessageBox("New password has been sent.",1,'loadHome'); }
    }
}
function DateMaskFormat(strDate)
{
    if(strDate.length == 0)
    {
        return "DD/MM/YYYY"
    }
    else
    {
        return strDate;
    }
}
function ShowPannel(bShow)
{
    var objLeftPanel = document.getElementById("dvLeftPanel");
    var objRightPanel = document.getElementById("dvRightPanel");
   
    if(bShow == true)
    {
        if(objLeftPanel != null)
        {objLeftPanel.style.display = "block";}
        if(objRightPanel != null)
        {objRightPanel.style.display = "block";}
    }
    else
    {
        if(objLeftPanel != null)
        {objLeftPanel.style.display = "none";}
        if(objRightPanel != null)
        {objRightPanel.style.display = "none";}
    }
    
        
    objLeftPanel = null;
    objRightPanel = null;
}

function OpenTicketDetail(booking_id,passengerId,bookingSegmentId)
{
    window.open("TicketPopUp.aspx?bid=" + booking_id + "&pid=" + passengerId + "&sid=" + bookingSegmentId);
}

function SubmitEnterSearch(myfield,e)
{
    var keycode;
    if (window.event) keycode = window.event.keyCode;
    else if (e) keycode = e.which;
    else return true;

    if (keycode == 13)
    {
        MyBookingSearch();
        return false;
    }
    else
        return true;
}

function LoadDialog()
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.LoadClientDialog(SuccessLoadClientDialog, showError, showTimeOut);   
}

function SuccessLoadClientDialog(result)
{
    ShowProgressBar(false);
    var objMessage = document.getElementById("dvFormHolder");
    var objContainer = document.getElementById("dvProgressBar");
        

    //Insert passenger form content.
    objMessage.innerHTML = result;
    objContainer.style.display = "block";
    objMessage.style.display = "block";
    objMessage = null;
}

function LoadMenu()
{
    tikAeroB2C.WebService.B2cService.LoadMenu(SuccessLoadMenu, showError, showTimeOut);   
}
function SuccessLoadMenu(result)
{   
    var objContainer = document.getElementById("dvMenu");
    
    objContainer.innerHTML = result;
    objContainer = null;
}
function LoadHtml(strHtmlName)
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.LoadHtml(strHtmlName, SuccessLoadHtml, showError, showTimeOut);
}
function SuccessLoadHtml(result)
{
    var objContainer = document.getElementById("dvContainer");
    
    objContainer.innerHTML = result;
    
    ShowPannel(true);
    ShowProgressBar(false);
    objContainer = null;
}

function resizeFrame(f) 
{
    try {
        f.style.height = f.contentWindow.document.body.scrollHeight + "px";
        f.style.width = f.contentWindow.document.body.scrollWidth + "px";
    }
    catch(err)
    {
        f.style.height = "590px";
        f.style.height = "700px";      
    }
}

function isNum(string) 
{
	var numericExpression = /^[0-9]+$/;
	if(string.match(numericExpression)) {
		return true;
	} else {
		return false;
	}
}
function IsChar(string)
{
    var CharExpression = /^[a-zA-Z]+$/;
	if(string.match(CharExpression)) 
	{
		return true;
	} else 
	{
		return false;
	}
}
function ContainNumeric(value)
{
	for(var i=0; i<value.length; i++)
	{
	    if(isNum(value.charAt(i)) == true)
	    {
	        return true;
	    }
	}
	return false;
}
function OnlyCharacter(value)
{
    for(var i=0; i<value.length; i++)
	{
	    if(IsChar(value.charAt(i)) == false)
	    {
	        return false;
	    }
	}
	return true;
}
function ReplaceSpecialCharacter(value)
{	
	var strNewValue = new String(value);
    strNewValue = strNewValue.replace(/[^a-zA-Z 0-9]+/g,'');
    strNewValue = strNewValue.replace(/\s+/g,'');
    
    return strNewValue;
}
function ShowBlueMenu(bValue)
{
    var objBlueMenu = document.getElementById("dvMenutabarea")
    if(bValue == true)
    { objBlueMenu.style.display="block"; }
    else
    { objBlueMenu.style.display="none"; }
    objBlueMenu = null;
}
function ShowBlueBanner(bValue)
{
    var objBlueBanner = document.getElementById("dvMenubluebanner")
    if(bValue == true)
    { objBlueBanner.style.display="block"; }
    else
    { objBlueBanner.style.display="none"; }
    objBlueBanner = null;
}

function ShowPaymentFfpInfo()
{
    if(document.getElementById("dvPointTotal") != null)
    {
        var dblCurrentPoint = parseFloat(document.getElementById("dvCurrentPoint").innerHTML.replace(/\,/g,''));
        var dblRedeemPoint = parseFloat(document.getElementById("dvPointTotal").innerHTML.replace(/\,/g,''));
        
        document.getElementById("dvFfpRedeemSummary").style.display = "block";
        document.getElementById("dvRedeemClientId").innerHTML = document.getElementById("hdClientNumber").value
        document.getElementById("dvRedeemCurrentPoint").innerHTML = AddCommas(dblCurrentPoint);
        document.getElementById("dvRedeemPoint").innerHTML = AddCommas(dblRedeemPoint);
        document.getElementById("dvRedeemBalance").innerHTML = AddCommas(dblCurrentPoint - dblRedeemPoint);
        
        //Check FFP Balance if it is enough.
        if(dblCurrentPoint >= dblRedeemPoint)
        {
            document.getElementById("dvMessageTop").innerHTML = AddCommas(dblRedeemPoint) + " points will be deducted from your account for the cost of the fare. To complete this transaction a credit/debit card payment will be taken for all taxes/charges and any pre-booked seats.";    
            document.getElementById("dvRedeemMessage").innerHTML = "Thank you for redemption points. Your points will be deducted " + AddCommas(dblRedeemPoint) + " points.";    
        }
        else
        {
            document.getElementById("dvMessageTop").innerHTML = "Sorry, you do not have enough points to purchase the flights selected. Please return to Home Page and rebook using the \'Find Flights\' option.";
            document.getElementById("dvRedeemMessage").innerHTML = "Sorry. You do not have enough Frequent Flyer points at this time. Please choose Credit Card payment to continue.";
            
            document.getElementById("btmPaymentCC").style.display = "none";
            document.getElementById("btmPaymentRedeem").style.display = "none";
        }
    }
    
}

function GetPagingFFP(pageindex)
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.GetPagingFFP(pageindex,SuccessGetPaging, showError, showTimeOut);   
}

function GetHistoryBooking(pageindex)
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.GetPagingBooking(pageindex,'true',SuccessGetPaging, showError, showTimeOut);   
}

function SuccessGetPaging(result)
{   
    ShowProgressBar(false);
    var objContainer = document.getElementById("dvPaging");
    
    objContainer.innerHTML = result;
    objContainer = null;
}

function GetLifeBooking(pageindex)
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.GetPagingBooking(pageindex,'false',SuccessGetLifeBooking, showError, showTimeOut);   
}

function SuccessGetLifeBooking(result)
{   
    ShowProgressBar(false);
    var objContainer = document.getElementById("dvLifePage");
    
    objContainer.innerHTML = result;
    objContainer = null;
}

function ShowHistory()
{
    HideLiveBooking();
    document.getElementById("historyBooking").style.display = "block";  
    document.getElementById("HistoryTab1").className = 'TabConererLeft';
    document.getElementById("HistoryTab2").className = 'TabConererContent';
    document.getElementById("HistoryTab3").className = 'TabConererRight';
    
}

function HideHistory()
{
    document.getElementById("historyBooking").style.display = "none";  
    document.getElementById("HistoryTab1").className = 'TabActiveConererLeft';
    document.getElementById("HistoryTab2").className = 'TabActiveConererContent';
    document.getElementById("HistoryTab3").className = 'TabActiveConererRight';
}

function ShowLiveBooking()
{
    document.getElementById("liveBooking").style.display = "block";
    document.getElementById("LiveTab1").className = 'TabConererLeft';
    document.getElementById("LiveTab2").className = 'TabConererContent';
    document.getElementById("LiveTab3").className = 'TabConererRight';
    
    HideHistory();
}

function HideLiveBooking()
{
    document.getElementById("liveBooking").style.display = "none";
    document.getElementById("LiveTab1").className = 'TabActiveConererLeft';
    document.getElementById("LiveTab2").className = 'TabActiveConererContent';
    document.getElementById("LiveTab3").className = 'TabActiveConererRight';
}

function FormLoadOperation()
{        
    if (existEachQueryString("it") != "") {
        switch(queryStringValue("it"))
            {
            case "lug":
              LoadHtml('fLuggage.asp?lang=en');
              break;
            case "pho":
              LoadHtml('fPhoto.asp?lang=en');
              break;
            case "con":
              LoadHtml('lConditions.asp?lang=en');
              break;
            case "legal":
              LoadHtml('lMontreal.asp?lang=en');
              break;
            case "cob":
              GetMyBooking(false,'');
              break;
            case "cki":
              LoadHtml('wCheckIn.asp?lang=en');
              break;
            case "ctu":
              LoadHtml('contact.asp?lang=en');
              break;
            case "nrg":
              ExternalLoadPage('registerdetail');
              break;
            case "gb":
              ExternalLoadPage('groupbooking');
              break;
            case "cf":
              ExternalLoadPage('charterflight');
              break;
            case "bk":
              LoadHtml('Breaks.asp?lang=en');
              break;
            default:
            }
    }
    else {

        //Read FFP login from cookies.
        RefreshSetting();
        
    }
}

function ExternalLoadPage(page)
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.ExternalLoadPage(page, SuccessExternalLoadPage, showError, showTimeOut);
}

function SuccessExternalLoadPage(result)
{
    var obj = document.getElementById("dvContainer");
    obj.innerHTML = result;
    
    scroll(0,0);
    
    ShowPannel(false);
    ShowProgressBar(false);
    obj = null;
}

function ReadFFPCookies()
{        
    var strCookies = getCookie("coFFP");
    if(strCookies != null)
    {
        ShowProgressBar(true);
        tikAeroB2C.WebService.B2cService.ClientLoad(strCookies, SuccessClientLogon, showError, showTimeOut);
    }
}
function EmailItineraryInput(strDefaultMail)
{
    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.ShowEmailSender(SuccessEmailItineraryInput, showError, strDefaultMail);
}
function SuccessEmailItineraryInput(result, strDefauleEmail)
{
    ShowProgressBar(false);
    if(result.length > 0)
    {
        var objMessage = document.getElementById("dvFormHolder");
        var objContainer = document.getElementById("dvProgressBar");
        
        //Insert passenger form content.
        objMessage.innerHTML = result;
        
        document.getElementById("txtEmail").value = strDefauleEmail;
        
        objMessage.style.display = "block";
        objContainer.style.display = "block";
        
        objMessage = null;
        objContainer = null;
    }
}
function CloseEmailSender()
{
    var objMessage = document.getElementById("dvFormHolder");
    var objContainer = document.getElementById("dvProgressBar");
    //Insert passenger form content.
    objMessage.innerHTML = "";
    
    objMessage.style.display = "none";
    objContainer.style.display = "none";
    
    objMessage = null;
    objContainer = null;
}
function SendItineraryEmailInput()
{
    //Close Email Sender.
    var strEmail = document.getElementById("txtEmail").value;
    
    CloseEmailSender();
    if(ValidEmail(strEmail) == true)
    {
        ShowProgressBar(true);
        tikAeroB2C.WebService.B2cService.SendItineraryEmailOptional(strEmail, SuccessEmailItinerary, showError, showTimeOut);   
    }
    else
    {
        ShowMessageBox("Invalid Email address !!", 0,'');
    }
    
}
function LoadClientInformation(strClientProfileId)
{
    tikAeroB2C.WebService.B2cService.ClientLoad(strClientProfileId, SuccessLoadClientInformation, showErrorPayment, showTimeOutPayment);
}
function SuccessLoadClientInformation(result)
{
    if(result.length > 0)
    {
        document.getElementById("dvClientInfo").innerHTML = result;
    }
}

function SuccessLoadClientLogonInformation(result) {
    if (result.length > 0) {
        document.getElementById("dvClientInfo").innerHTML = result;
        var objhdId = document.getElementById("hdClientId");
        //Add To Cookies
        var dtExpired = new Date();

        //Add 5 days Expiry date to cookies.
        dtExpired.setDate(dtExpired.getDate() + 5);
        setCookie("coFFP", objhdId.value, dtExpired, "", "", false);

        objhdId.value = "";
        dtExpired = null;
    }
}
function RefreshClientInformation(strClientProfileId) {

    ShowProgressBar(true);
    tikAeroB2C.WebService.B2cService.ClientLoad(strClientProfileId, SuccessRefreshClientInformation, showErrorPayment, showTimeOutPayment);
}
function SuccessRefreshClientInformation(result)
{
    if(result.length > 0) {

        ShowPannel(true);
        DisplayLogin();

        if (document.getElementById("dvRedMenu").style.display == "block") {
            document.getElementById("dvSearchRedeem").style.display = "block";
        }
        tikAeroB2C.WebService.B2cService.LoadClientInformation(SuccessLoadClientLogonInformation, showError, showTimeOut);
        tikAeroB2C.WebService.B2cService.LoadMyBooking(SuccessLoadMyBooking, showError, showTimeOut);
    }
}
function AddCommas(nStr)
{
	nStr += '';
	x = nStr.split('.');
	x1 = x[0];
	x2 = x.length > 1 ? '.' + x[1] : '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(x1)) {
		x1 = x1.replace(rgx, '$1' + ',' + '$2');
	}
	return x1 + x2;
}
function SetLanguage(strJSON)
{
    objLanguage = eval("(" + strJSON + ")");   
}
function validateChdInfBirthDate(birthDate, paxType)
{
    var MIN_CHD_AGE = (2*365);
    var MAX_CHD_AGE = ((12*365) - 1);

    var MIN_INF_AGE = (0);
    var MAX_INF_AGE = ((2*365) - 1);
    
    var MIN_ADULT_AGE = (12*365);
    
    var myDates = birthDate.replace("/","").replace("/","");
    
    var d = Number(myDates.substring(0,2));
    var m = Number(myDates.substring(2,4));
    var y = Number(myDates.substring(4,8));
    var isSdate = CheckIsDate(y,m,d);
    
    m=m-1;
    var iDate = new Date(y,m,d - 1);
    var cDate = new Date();
    var mmAge = dateDiff("d",iDate,cDate,1,1); 
    var strErrMsg = "";
    
    if(paxType.toUpperCase()=="ADULT")
    {
        if(!((MIN_ADULT_AGE<=mmAge)))
        {
            strErrMsg = "- Age of adult should be more than 12 years";
        }                         
    }
    if(paxType.toUpperCase()=="INF")
    {
        if(!((MIN_INF_AGE<=mmAge)&&(mmAge<=MAX_INF_AGE)))
        {
            strErrMsg = "- Age of infant should between 1 - 24 month(s)";
        }                         
    }
    if(paxType.toUpperCase()=="CHD")
    {
        if(!((MIN_CHD_AGE<=mmAge)&&(mmAge<=MAX_CHD_AGE)))
        {
            strErrMsg = "- Age of child should between 2 - 12 years";
        }
    }
    return strErrMsg;
 }
 
 // Start add load itin
function existEachQueryString(qryValue){
	var hu = window.location.search.substring(1);
    var gy = hu.split("&");
    var found = false;
    for (i=0;i<gy.length;i++) {
        ft = gy[i].split("=");
        if (ft[0] == qryValue) {
            found = true;
        }
    }
    return found;
}
function queryStringValue(ji) {
    var hu = window.location.search.substring(1);
    var gy = hu.split("&");
    for (i=0;i<gy.length;i++) {
        ft = gy[i].split("=");
        if (ft[0] == ji) {
            return ft[1];
        }
    }
}
// End add load itin
function GetMyBooking(bParameter, bookingId)
{
    if(document.getElementById("hdClientId") == null)
    {LoadCob(bParameter, bookingId);}
    else
    {loadHome();}
}

function LoadFAQ()
{
	LoadHtml('fChangeOfBooking.asp?lang=en');
	document.getElementById("dvAvailabilitySearch").style.display = 'block';
	document.getElementById("dvRightPanel").style.display = 'block';
}
function ShowMyBookingMessage(bShow)
{
    if(document.getElementById("hdClientId") == null)
    {
        var objMessage = document.getElementById("spMyBookingMessage");
        if(bShow == true)
        {
            objMessage.style.display = "block";
        }
        else
        {
            objMessage.style.display = "none";
        }
    }
}
 function ReformatXmlToYYYYMMDD(strDate)
{   
    if(strDate.length > 0)
    {
        var day = strDate.substring(8,10);
        var month = strDate.substring(5,7);
        var year = strDate.substring(0,4);
        
        return year + month + day;
    }
    else
    {
        return "";
    }
}
function LoadSecure(value)
{
    isClose = false;
    var strHttp = "";
    
    if(value == true) {
        strHttp = "https://";
    }
    else {
        strHttp = "http://";
    }
    window.location.href = strHttp + window.location.href.split("//")[1];
}

function RefreshSetting()
{
    tikAeroB2C.WebService.B2cService.GetCurrentStep(SuccessRefreshSetting, showErrorPayment, showTimeOutPayment); 
}
function SuccessRefreshSetting(result)
{ 
    var strCookies = getCookie("coFFP");
    
    if(strCookies != null)
    {
        DisplayLogin();
        if(Number(result) == 5)
        {
            SetPaymentContent();
        }
        else if(Number(result) == 4)
        {
            SetPassengerDetail();
        }
        else if (Number(result) == 1)
        {
            if (window.location.href.indexOf("https") == -1) {
                //If FFP Logon Reload point.
                if (strCookies != null) {
                    RefreshClientInformation(strCookies);
                }
            }
        }
    }
    else
    {
        if(Number(result) > 1)
        {
            DisplayBookingProcessNotLogin();
            if(Number(result) == 5)
            {
                SetPaymentContent();
            }
            else if(Number(result) == 4)
            {
                SetPassengerDetail();
            }
        }
        else 
        {
            DisplayHomePageNotLogin();
        }
    }
    if(Number(result) > 2)
    {
        ShowPannel(false);
    }
}
function SuccessLoadAvailability(result)
{
    var objContainer = document.getElementById("dvContainer");
    objContainer.innerHTML = result;
}
function DisplayBookingProcessNotLogin()
{
    var objMainMenuFlyer = document.getElementById("dvMainMenuFlyer");
    
    var objMenutabarea = document.getElementById("dvMenutabarea");
    var objMenubluebanner = document.getElementById("dvMenubluebanner");
    
    var objRedMebu = document.getElementById("dvRedMenu");
    
    if(objMainMenuFlyer != null)
    { objMainMenuFlyer.style.display = "block";}
    
    if(objMenutabarea != null)
    { objMenutabarea.style.display = "none"; }
    if(objMenubluebanner != null)
    { objMenubluebanner.style.display = "none"; }
    
    if(objRedMebu != null)
    { objRedMebu.style.display = "none"; }
    
    objMainMenuFlyer = null;
    
    objMenutabarea = null;
    objMenubluebanner = null;
    
    objRedMebu = null;
}

function DisplayLogin()
{
    var objMainMenuFlyer = document.getElementById("dvMainMenuFlyer");
    
    var objMenutabarea = document.getElementById("dvMenutabarea");
    var objMenubluebanner = document.getElementById("dvMenubluebanner");
    
    var objRedMebu = document.getElementById("dvRedMenu");
    
    if(objMainMenuFlyer != null)
    { objMainMenuFlyer.style.display = "none";}
    
    if(objMenutabarea != null)
    { objMenutabarea.style.display = "none"; }
    if(objMenubluebanner != null)
    { objMenubluebanner.style.display = "none"; }
    
    if(objRedMebu != null)
    { objRedMebu.style.display = "block"; }
    
    objMainMenuFlyer = null;
    
    objMenutabarea = null;
    objMenubluebanner = null;
    
    objRedMebu = null;
}

function DisplayHomePageNotLogin()
{
    var objMainMenuFlyer = document.getElementById("dvMainMenuFlyer");
    
    var objMenutabarea = document.getElementById("dvMenutabarea");
    var objMenubluebanner = document.getElementById("dvMenubluebanner");
    
    var objRedMebu = document.getElementById("dvRedMenu");
    
    if(objMainMenuFlyer != null)
    { objMainMenuFlyer.style.display = "none";}
    
    if(objMenutabarea != null)
    { objMenutabarea.style.display = "block"; }
    if(objMenubluebanner != null)
    { objMenubluebanner.style.display = "block"; }
    
    if(objRedMebu != null)
    { objRedMebu.style.display = "none"; }
    
    objMainMenuFlyer = null;
    
    objMenutabarea = null;
    objMenubluebanner = null;
    
    objRedMebu = null;
}
function ReformatOriginalDate(strDate)
{   
    if(strDate == "DD/MM/YYYY" || strDate == "__/__/____")
    {
        return "";
    }
    else
    {
        return strDate;
    }
}
