﻿// JScript File

var bIsSearch=true;

function ExpandReturnIfRequired()
{
    try
    {
        if(IsReturn == 'true')
        {
            TrainReturn();
        }
    }
    catch(e)
    {
        // alert('ExpandReturnIfRequired Error ' + e.message + ' occurred.');
    }
}

function TrainReturn()
{
    try
    {
        var bOpenDiv = true;
        
        if ((typeof(m_bIsPrint) != 'undefined') && (m_bIsPrint))
            bOpenDiv = false;
            
        if(bOpenDiv)
        {
            var MainTable = objTrainReturnFirstRow.parentNode;
            var arrRows = MainTable.getElementsByTagName("tr");
            var dispalyStatus = "";
            var i = 0;
             
            objTrainReturnImg.style.cursor = "pointer";
            if (objTrainReturnFirstRow.style.display == "none")
            {
                Status = "close";
                objhdnGetTrainBack.value = "false";
            }
            else
            {
                dispalyStatus = "none";
                Status = "open";
                objhdnGetTrainBack.value='true';
            }
            objTrainReturnFirstRow.style.display = dispalyStatus;
            objTrainReturnImg.setAttribute("src",ImageLibraryPath + Status + ".gif");

            while(i < arrRows.length)
            {
                if(arrRows[i].id.indexOf('TrainReturn') >= 0)
                {
                    arrRows[i].style.display = dispalyStatus;
                }
                ++i;
            }
         /* var daitGoing = document.getElementById(dpGoingTrain);*/
         
          if (Date.parse(dpGoingTrainObj.GetDate()) > Date.parse(dpReturnningTrainObj.GetDate())) 
            {
             dpReturnningTrainObj.SetDate(dpGoingTrainObj.GetDate());
            }    
        }        
    }
    catch(e)
    {
        // alert('TrainReturn Error ' + e.message + ' occurred');
    }
}

function SetImage(SourceImage)
{
    try
    {
        if(Status=='close')
        {
            SourceImage = SourceImage.replace(/open/,'close');
        }
        objTrainReturnImg.setAttribute("src",SourceImage);
    }
    catch(e)
    {
       // alert('SetImage Error ' + e.message + ' occurred.'); 
    }
    
}

function ChangeButtonImage(mainId,cssClassName,operation)
{
    try
    { 
        var leftImageId = mainId + "Left";
        var rightImageId = mainId + "Right";
        var centerTdId = mainId + "Center";
 
        var leftImage = document.getElementById(leftImageId);
        var centerElement = document.getElementById(centerTdId);
        var rightImage = document.getElementById(rightImageId);
        
        centerElement.className = cssClassName;
        
        if(operation == "out")
        {
            ChangeImageOut(leftImage);
            ChangeImageOut(rightImage);
        }
        else
        {
            ChangeImageOver(leftImage);
            ChangeImageOver(rightImage);
        }
    }
    catch(e)
    {
       // alert('ChangeButtonImage Error ' + e.message + ' occurred.'); 
    }    
}

function ChangeImageOver(objImage)
{
    try
    {
        var ImageNewSrc = objImage.src.replace(".gif","_over.gif");
        objImage.src = ImageNewSrc;
    }
    catch(e)
    {
       // alert('ChangeImageOver Error ' + e.message + ' occurred.'); 
    } 
}

function ChangeImageOut(objImage)
{
    try
    {
        var ImageNewSrc = objImage.src.replace("_over.gif",".gif");
        objImage.src = ImageNewSrc;
    }
    catch(e)
    {
       // alert('ChangeImageOut Error ' + e.message + ' occurred.'); 
    } 
}

function CleanAll()
{
    try
    {
        var GoingHourDeparture = document.getElementById(GoingHourDepartureId);
        var GoingHourReturn = document.getElementById(GoingHourReturnId);
        var currentDate = new Date();
        
        var iHour = currentDate.getHours();
        var iMinutes = currentDate.getMinutes();
        var iCalcPos;
        var iResult;
        //get default value if there is no value in webcinfig
        var iInterval=lTimeInterval;
        //calculate the interval (distance between minutes to show)
        iInterval = 60 / iInterval;

        //calculate the closet minute(in the drop down) to the current minute
        iCalcPos = Math.ceil(iMinutes / iInterval);
        iResult = (iCalcPos) * iInterval;
        
        //if minutes bigger than 59 the hour has to be changed and time has to zeroing
        if (iResult > 59)
        {
            if (iHour >= 23)
            {
                iHour = 0;
            }
            else
            {
                iHour += 1;
            }
            iResult = 0;
        }                

        //reset radio buttons
        GoingHourDeparture.checked = true;
        GoingHourReturn.checked = true;
        //clear time dropdowns
        DepartureCombo.reset(iHour,iResult);
        ReturnCombo.reset(iHour,iResult);
        
        //clear station combos
        ////ResetRadCombo(OriginStationCombo,StationComboText,StationComboText,true,cmbOriginStationId);
        ////ResetRadCombo(DestStationCombo,StationComboText,StationComboText,true,cmbOriginStationId);
        /////////////////////  combo  ////////////////////////// 
        DestStationCombo.selectedIndex = 0;
        OriginStationCombo.selectedIndex = 0;
        
        //reset dates
        ResetDateControl(dpGoingTrainObj);
        ResetDateControl(dpReturnningTrainObj);
    }
    catch(e)
    {
       // alert('CleanAll Error ' + e.message + ' occurred.'); 
    } 
 }

function ResetDateControl(datePicker)
{
    try
    {
         //alert("ResetDateControl");
        //if (document.readyState=="complete")
        if(datePicker!= null && datePicker.DateInput!=null)
	    {
           /* var datePicker = ctlId;*/
            var date = new Date();
            datePicker.FocusedDate =date;
            datePicker.DateInput.SetDate(date);
         }
         else
         {
            var tm=1000;
            window.setTimeout(function (){ResetDateControl(datePicker)}, tm);
         }    
    }
    catch(e)
    {
       // alert('ResetDateControl Error ' + e.message + ' occurred.'); 
    } 
  
}

function ResetRadCombo(obj,comboValue,comboText,clearSelection)
{
    try
    {
         if(obj == null) return;
        var oSelectBox = NWSelectBox_get(obj);
        if(oSelectBox == null) return;
        
        var iFound = -1;
        for(var i=0;i<obj.options.length;i++){
           if(obj.options[i].text == comboText){
              iFound = i;
              break; 
           }                      
        }
        if(iFound < 0 && obj.options.length > 0) iFound = 0;                
        if(iFound < 0) return;                
                        
        obj.selectedIndex = iFound;
        oSelectBox.updateControls();                                                      
    }
    catch(e)
    {
       // alert('ResetRadCombo Error ' + e.message + ' occurred.'); 
    } 
   
}

function ResetInputControl(ctlId,ctlValue,inputIndex)
{
    try
    {
        var ctl = document.getElementById(ctlId);
        var arrInputs = null;
        if(ctl != null)
        {
            arrInputs = ctl.getElementsByTagName('input');
            if(arrInputs != null)
            {
                if(arrInputs.length >= inputIndex + 1)
                {
                    arrInputs[inputIndex].value = ctlValue;
                }
            }
        }
    }
    catch(e)
    {
       // alert('ResetInputControl Error ' + e.message + ' occurred.'); 
    }
}

function SendRequestOnClick()
{
    try
    {
        if (objTrainReturnFirstRow.style.display == 'none')
        {   // one way turn
            objhdnGetTrainBack.value = "false";
        }
        else
        {   // return trip
            objhdnGetTrainBack.value = "true";
        }
        
        var objSearch = document.getElementById(hdnbtnSearchId);
        var ErrorMessage = CheckForm();
        
        if(ErrorMessage  == "")
        {
            objSearch.click();
        }
        else
        {
            alert(ErrorMessage);
        }
    }
    catch(e)
    {
       // alert('SendRequestOnClick Error ' + e.message + ' occurred.'); 
    }
}

function SendRequest(obj)
{

    try
    { 
        if (bIsSearch){
            if (objTrainReturnFirstRow.style.display == 'none')
            {   // one way turn
                objhdnGetTrainBack.value = "false";
            }
            else
            {   // return trip
                objhdnGetTrainBack.value = "true";
            }
            
            var objSearch = document.getElementById(hdnbtnSearchId);
            var ErrorMessage = CheckForm();
            if(ErrorMessage  == "")
            {
                //objSearch.click();
                //////////////////////////////////////////
                if(OriginStationCombo.value != "" && DestStationCombo.value != "" )
                {
                    var oG = Train_TimeControl_get(dpGoing);
                    var oR = Train_TimeControl_get(dpReturnning);
                    
                    //all trains change
                    var sHoursDeparture = oG.H;
                    var sHoursReturn = oR.H;
                    if (isNaN(oG.H))
                      sHoursDeparture = "all";
                    if (isNaN(oR.H))
                      sHoursReturn = "all";
                    //all trains change
                    
                    var FullRedirectURL = RedirectURL
                    +"&OriginStationId="+ OriginStationCombo.value
                    +"&DestStationId="+ DestStationCombo.value
                    +"&OriginStationName="+ encodeURI(OriginStationCombo[OriginStationCombo.selectedIndex].text)
                    +"&DestStationName="+ encodeURI(DestStationCombo[DestStationCombo.selectedIndex].text)
                    +"&HoursDeparture="+ sHoursDeparture
                    +"&MinutesDeparture=0"//+ oG.M
                    +"&HoursReturn="+ sHoursReturn
                    +"&MinutesReturn=0"//+ oR.M
                    +"&GoingHourDeparture="+ GoingHourDeparture.checked
                    +"&ArrivalHourDeparture="+ ArrivalHourDeparture.checked
                    +"&GoingHourReturn="+ GoingHourReturn.checked
                    +"&ArrivalHourReturn="+ ArrivalHourReturn.checked
                    +"&IsReturn="+ objhdnGetTrainBack.value
                    +"&GoingTrainCln=" + GoingTrainCln.value//.toTimeString().format('d/m/Y')
                    +"&ReturnningTrainCln=" + ReturnningTrainCln.value
                    +"&IsFullURL=true"
                    
                    bIsSearch = true;
                    obj.disabled = true;
                    obj.style.cursor = "normal";
                    window.location = FullRedirectURL;
                }
            }
        }
    }
    catch(e)
    {
       // alert('SendRequest Error ' + e.message + ' occurred.'); 
    }
}

function CheckForm()
{ 
  var ErrorMessage = "";
  try
  {
    var dpGoing = DepartureCombo;
    var dpReturnning = ReturnCombo;
    
    //var dpGoingTrain = dpGoingTrain;
    //var dpReturnningTrain = dpReturnningTrain;
    var bCheckReturnTrain = false;
    
    if(objTrainReturnFirstRow.style.display != "none")
    {
        bCheckReturnTrain = true;
    }                                

    if(dpGoingTrain.value == "" || (dpReturnningTrain.value == "" && bCheckReturnTrain))
    {
        ErrorMessage += EmptyDatesMessage;
    }
    else
    {
        if(bCheckReturnTrain)
        {
             if (Date.parse(dpGoingTrain.value.replace("-", "/")) > Date.parse(dpReturnningTrain.value.replace("-", "/"))) 
            {
                if(ErrorMessage  != "")
                {
                    ErrorMessage += "\n";
                }
                ErrorMessage += IncorrectDatesMessage;
            }
            if (Date.parse(dpGoingTrain.value.replace("-", "/")) == Date.parse(dpReturnningTrain.value.replace("-", "/"))) 
            {
                var oG = Train_TimeControl_get(dpGoing);
                var oR = Train_TimeControl_get(dpReturnning);
                if (oG.H>oR.H)
                     ErrorMessage += IncorrectHoursMessage;
                if (oG.H==oR.H && oG.M>=oR.M)                            
                     ErrorMessage += IncorrectHoursMessage;                                                                
            }
            
        }
    }
    //alert("OriginStationCombo: "+OriginStationCombo);
    //alert("OriginStationCombo: "+OriginStationCombo.options[OriginStationCombo.selectedIndex]);
    //alert("OriginStationCombo.value: "+OriginStationCombo.value);
    if(OriginStationCombo.value == "" || DestStationCombo.value == "" )
    {
        if(ErrorMessage != "")
        {
            ErrorMessage += "\n";
        }
        ErrorMessage += ChooseStationsMessage;
        
    }else if (OriginStationCombo.value == DestStationCombo.value){
            
            if(ErrorMessage != ""){
                ErrorMessage += "\n";
            }
            ErrorMessage += SameStationsMessage;
        }
   }
    catch(e)
    {
       // alert('CheckForm Error ' + e.message + ' occurred.'); 
    }
    
    return ErrorMessage;
}

function SwapImagesAccordingDocumentDirection()
{
    try
    {
        if(documentDirection == "rtl")
        {
            // swap header Images
            SwapImages("imgHeaderLeft","imgHeaderRight");
            // swap clear button images
            SwapImages("imgCleanAllLeft","imgCleanAllRight");
            // swap search button images
            SwapImages("imgSearchLeft","imgSearchRight");
            // swap footer Images
            SwapImages("imgFooterLeft","imgFooterRight");
            
            ReAlignControl("tdDepartureTime","right");
            ReAlignControl("tdReturnTime","right");
            
            SwapControls("spanClockReturn","spanClockReturnHidden");
        }
    }
    catch(e)
    {
       // alert('SwapImagesAccordingDocumentDirection Error ' + e.message + ' occurred.'); 
    }
}

function ReAlignControl(ctlId,alignment)
{
    try
    {
        var ctl = document.getElementById(ctlId);
        if(ctl != null)
        {
            ctl.align = "right";
        }
    }
    catch(e)
    {
       // alert('ReAlignControl Error ' + e.message + ' occurred.'); 
    }
}

function SwapControls(leftControlId,rightControlId)
{
    try
    {
        var leftControl = document.getElementById(leftControlId);
        var rightControl = document.getElementById(rightControlId);
        if(leftControl != null && rightControl != null)
        {
            var innerHtml = leftControl.innerHTML;
            leftControl.innerHTML = rightControl.innerHTML
            rightControl.innerHTML = innerHtml;
        }
    }
    catch(e)
    {
       // alert('SwapControls Error ' + e.message + ' occurred.'); 
    }
}

function SwapImages(leftImageId,rightImageId)
{
    try
    {
        var leftImage = document.getElementById(leftImageId);
        var rightImage = document.getElementById(rightImageId);
        if(leftImage != null && rightImage != null)
        {
            var source = leftImage.src;
            leftImage.src = rightImage.src;
            rightImage.src = source;
        }
     }
     catch(e)
    {
       // alert('SwapImages Error ' + e.message + ' occurred.'); 
    }
}
 
var dir;
/*
function pageDir()
{
      try
      {
        dir = NWGlobal.pageDir_get();
      }
      catch(e)
      {
        // alert('pageDir Error ' + e.message + ' occurred.'); 
      }
}
     */



function ensureDir(){
    if (!dir)
    {
        if (window.NWGlobal){
            dir = NWGlobal.pageDir_get();
        }
    }
}
function SendButtonOver()
{
    try
    {
        ensureDir();
        document.getElementById(imgSendRightCornerId).setAttribute("src","/resources/Images/Train/SmallDrivePlan/"+dir+"/plan_red_button_right_over.gif");
        document.getElementById(tdSendCenterAreaId).className= 'ImgSearchOver';
        document.getElementById(imgSendLeftCornerId).setAttribute("src","/resources/Images/Train/SmallDrivePlan/"+dir+"/plan_red_button_left_over.gif");
    }
     catch(e)
    {
       // alert('SendButtonOver Error ' + e.message + ' occurred.'); 
    }
    
}
function SendButtonOut()
{
    try
    {
        ensureDir();
        document.getElementById(imgSendRightCornerId).setAttribute("src","/resources/Images/Train/SmallDrivePlan/"+dir+"/plan_red_button_right.gif");
        document.getElementById(tdSendCenterAreaId).className= 'ImgSearchCenter';
        document.getElementById(imgSendLeftCornerId).setAttribute("src","/resources/Images/Train/SmallDrivePlan/"+dir+"/plan_red_button_left.gif");
    }
     catch(e)
    {
       // alert('SendButtonOut Error ' + e.message + ' occurred.'); 
    }
}
// End Send buttun functions
//Cancel button over/out functions
function CancelButtonOver()
{
    try
    {
        ensureDir();
        document.getElementById(imgCancelRightCornerId).setAttribute("src","/resources/Images/Train/SmallDrivePlan/"+dir+"/plan_gray_button_right_over.gif");
        document.getElementById(tdCancelCenterAreaId).className= 'ImgCleanAllOver';
        document.getElementById(imgCancelLeftCornerId).setAttribute("src","/resources/Images/Train/SmallDrivePlan/"+dir+"/plan_gray_button_left_over.gif");
    }
      catch(e)
      {
        // alert('CancelButtonOver Error ' + e.message + ' occurred.'); 
      }
}
function CancelButtonOut()
{
    try
    {
        ensureDir();
        document.getElementById(imgCancelRightCornerId).setAttribute("src","/resources/Images/Train/SmallDrivePlan/"+dir+"/plan_gray_button_right.gif");
        document.getElementById(tdCancelCenterAreaId).className= 'ImgCleanAllCenter';
        document.getElementById(imgCancelLeftCornerId).setAttribute("src","/resources/Images/Train/SmallDrivePlan/"+dir+"/plan_gray_button_left.gif");
    }
      catch(e)
      {
        // alert('CancelButtonOut Error ' + e.message + ' occurred.'); 
      }
}

var hOnload2347 = function ()
{
    try
    {
            ResetDateControl(dpGoingTrainObj);
            ResetDateControl(dpReturnningTrainObj);
    }
      catch(e)
      {
        // alert('hOnload2347 = func() Error ' + e.message + ' occurred.'); 
      }
}
//NWGlobal.attachEvent(window,"load",hOnload2347);

function setCalendarDate(calendar)
{
    try
    {
        if (calendar != null)
        if (calendar.DateInput != null)
            if (calendar.DateInput.field != null)
            {
                var oYear = parseInt(calendar.DateInput.field.value.substr(6));
                var oDay = parseInt(calendar.DateInput.field.value.substr(0,2));
                var oMonth = calendar.DateInput.field.value.substr(3,2);
                if (oMonth.indexOf("0")==0)
                    oMonth = oMonth.substr(1);
                oMonth = parseInt(oMonth)-1;
                var oDate = new Date(oYear,oMonth,oDay);
                calendar.SetDate(oDate);
            }
    }
      catch(e)
      {
        // alert('setCalendarDate Error ' + e.message + ' occurred.'); 
      }
}


function getQueryVariable(variable) 
{
    try
    {
        var query = window.location.search.substring(1);
        var vars = query.split("&");
        for (var i=0;i<vars.length;i++) 
        {
            var pair = vars[i].split("=");
            if (pair[0] == variable) 
            {
                return pair[1];
            }
        } 
    //// alert('Query Variable ' + variable + ' not found');
    }
    catch(e)
    {
        // alert('getQueryVariable Error ' + e.message + ' occurred.'); 
    }
}

/* Functions Called Upon Page Loading */
function SmallDrivePlanOnLoadFunctions(){
    try{
        ExpandReturnIfRequired();
        UpdateTime();
       // InitSmallDrivePlanParams();
    }
    catch(e){
        // alert('onload functions Error: ' + e.message + ' occurred.'); 
    }
}
_nwBodyOnLoadFunctionNames.push("SmallDrivePlanOnLoadFunctions");



