﻿// JScript File
/* 
    Purpose : All Client-side script functions
    This file is being share by EEWebUI and EEWebUIRider projects
*/
/* Function to Show Calendar Control */
function showCalendar(sCalendarPageName,src,formsrc)
{   
    //if (formsrc == 'Outage') {OutageEntryValidation(); }
    
	var oWinObject = new Object();
	var sOutLook;
	oWinObject.srcScreen = sCalendarPageName;
	oWinObject.OperMode = "";	
	oWinObject.KeyField = src;
    oWinObject.sTitle = "Calendar"; 
    sOutLook="dialogWidth:"+240+"px;dialogHeight:"+220+"px;status:no;scroll:no;help:no";
	var oStatus = window.showModalDialog('ShowPopup.htm',oWinObject,sOutLook);	
	if(oStatus == undefined) oStatus = src;    
    
	return oStatus;
	return true;
}
function ShowScrollPopup(srcScreen,KeyField,OperMode,sTitle,Width,Height)
{
	var oWinObject = new Object();	
	var oStatus;
	var sOutLook;
	oWinObject.srcScreen = srcScreen;
	oWinObject.KeyField = KeyField;
	oWinObject.OperMode = OperMode;
    oWinObject.sTitle = sTitle;
    sOutLook="dialogWidth:"+Width+"px;dialogHeight:"+Height+"px;status:no;scroll:no;help:no";
    oStatus = window.showModalDialog('ShowPopup.htm',oWinObject,sOutLook);
    if(oStatus == true) 
    {
        window.refresh();
        return true;
    }
    return false;   
}
function ShowReportPopup(srcScreen,KeyField,OperMode,sTitle,Width,Height)
{
	var oWinObject = new Object();	
	var oStatus;
	var sOutLook;
	oWinObject.srcScreen = srcScreen;	
    oWinObject.sTitle = sTitle;
    sOutLook="dialogWidth:"+Width+"px;dialogHeight:"+Height+"px;status:no;scroll:no;help:no";
    oStatus = window.showModalDialog('ShowReportPopup.htm',oWinObject,sOutLook);
    if(oStatus == true) 
    {
        window.refresh();
        return true;
    }
    return false;   
}
/* Function used to Assign the Selected Date to corresponding Control */
function pickDate(sCalendarPageName,srcControl,formsrc)
{	    		    
	var retval = showCalendar(sCalendarPageName,document.getElementById(srcControl).value,formsrc);
    document.getElementById(srcControl).value = retval;
	return true;
}
/* Confirmation dialog - for DataGrid delete */
function confirmationDialog(msg)
{
    var returnValue;
    returnValue = confirm(msg);
    return returnValue;
}

function limitTextInput(field, maxlimit) 
{   
    if (field.value.length > maxlimit) 
    field.value = field.value.substring(0, maxlimit);
}
        
/* function to Toggle Tabs in Equipment Master Screen */
function ToggleEquipmentScreenTabs(tabName)
    {            
        document.getElementById('divSearch').style.display = 'none'; 
        document.getElementById('divEquipmentList').style.display = 'none';   
        document.getElementById('divEscalator').style.display = 'none';
        document.getElementById('divElevator').style.display = 'none';
              
        document.getElementById('tdSearch').style.background = '';
        document.getElementById('tdEscalator').style.background = '';
        document.getElementById('tdElevator').style.background = '';
        document.getElementById('tdEquipmentList').style.background = '';
        
            
        var currentTab = document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value;      

        if(currentTab=='' && tabName =='')   
            tabName ='search';    
    
        switch (tabName.toLowerCase())
        {
        case 'escalator':
             
            document.getElementById('divEscalator').style.display = 'block';    

            document.getElementById('tdEscalator').style.background = '#FFFFFF';
            document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value = 'escalator';
            return true;
            break;
        case 'elevator':
            
            document.getElementById('divElevator').style.display = 'block';    
                
            document.getElementById('tdElevator').style.background = '#FFFFFF';
            document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value = 'elevator';
            return true;
            break;            
        case 'equipmentlist':
            document.getElementById('divEquipmentList').style.display = 'block';     
            document.getElementById('tdEquipmentList').style.background = '#FFFFFF';
            document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value = 'equipmentlist';
            /* document.getElementById('divSearch').style.display = 'none'; */
            return true;
            break;
        case 'search':       
            document.getElementById('divSearch').style.display = 'block'; 
            document.getElementById('tdSearch').style.background = '#FFFFFF';                       
            document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value = 'search';
            return true;
            break;
        }     
        
}
function EquipmentActiveDateDisplay()
{
     if(document.getElementById('ctl00_pageContentHolder_pnlEscalatorActiveDates')) {
             document.getElementById('ctl00_pageContentHolder_pnlEscalatorActiveDates').style.display ='none';     
        }
        if(document.getElementById('ctl00_pageContentHolder_pnlElevatorActiveDates')) 
             document.getElementById('ctl00_pageContentHolder_pnlElevatorActiveDates').style.display ='none'; 
             
    return true;
}

/* function to Toggle Divs in Equipment Master Screen's Escalator Detail screen */ 
function ToggleEscalatorDetails(EscalatorDivName)
    {
        var arrEscalatorDivs = new Array()
        arrEscalatorDivs[0] = 'divEscalatorGeneralInfo';
        arrEscalatorDivs[1] = 'divEscalatorMotorInfo';
        arrEscalatorDivs[2] = 'divEscalatorSafetySwitches';
        arrEscalatorDivs[3] = 'divEscalatorCombPlatesSensors';        
        arrEscalatorDivs[4] = 'divEscalatorOtherInfo';
        var x
        for (x in arrEscalatorDivs)
        {
            document.getElementById(arrEscalatorDivs[x]).style.display = 'none';             
        }
        for (x in arrEscalatorDivs)
        {
            if (arrEscalatorDivs[x] == EscalatorDivName)
            {
                document.getElementById(arrEscalatorDivs[x]).style.display = 'block';     
                return;
            }
        }                
    }

/* function to Toggle Divs in Equipment Master Screen's Elevetor Detail screen */
function ToggleElevatorDetails(ElevatorDivName)
    {        
        var arrElevatorDivs = new Array()
        arrElevatorDivs[0] = 'divElevatorGeneralInfo';
        arrElevatorDivs[1] = 'divElevatorHatchDoorInfoL1';
        arrElevatorDivs[2] = 'divElevatorHatchDoorInfoL2';
        arrElevatorDivs[3] = 'divElevatorHatchDoorInfoL3';
        arrElevatorDivs[4] = 'divElevatorHatchDoorInfoL4';
        arrElevatorDivs[5] = 'divElevatorCarDoorInfo';        
        arrElevatorDivs[6] = 'divElevatorHydraulicJackInfo';
        arrElevatorDivs[7] = 'divElevatorHoistMotorInfo';
        arrElevatorDivs[8] = 'divElevatorHydraulicMotorInfo';
        arrElevatorDivs[9] = 'divElevatorPumpUnitInfo';
        arrElevatorDivs[10] = 'divElevatorHydraulicValveInfo';     
        arrElevatorDivs[11] = 'divElevatorOtherInfo';                        
        arrElevatorDivs[12] = 'divElevatorHatchDoorInfo';        
        
        var x 
        for (x in arrElevatorDivs)
        {
            document.getElementById(arrElevatorDivs[x]).style.display = 'none'; 
        }
                          
        for (x in arrElevatorDivs)
        {
            if (arrElevatorDivs[x] == ElevatorDivName)
            {
                var temp
                temp = x*1
                if (temp >= 1 && temp <= 4) {document.getElementById('divElevatorHatchDoorInfo').style.display = 'block';}
                else {document.getElementById('divElevatorHatchDoorInfo').style.display = 'none';}                
                
                document.getElementById(arrElevatorDivs[x]).style.display = 'block';     
                return;
            }
        }

}
            
/* function to Toggle Tabs in Employee Master Screen */
function ToggleEmployeeScreenTabs(tabName)
{
    
    document.getElementById('divSearch').style.display = 'none'; 
    document.getElementById('divEmployee').style.display = 'none';
    document.getElementById('divEmployeeList').style.display = 'none';     
    
    document.getElementById('tdSearch').style.background = '';
    document.getElementById('tdEmployee').style.background = '';
    document.getElementById('tdEmployeeList').style.background = '';
    
    var currentTab = document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value;        
    
    if(currentTab=='' && tabName =='')   
      tabName ='search';    
    
    switch (tabName.toLowerCase())
    {
    case 'employee':
        document.getElementById('divEmployee').style.display = 'block';    
        document.getElementById('tdEmployee').style.background = '#FFFFFF';
        document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value = 'employee';
        SetSupervisorForJobPickNumber(document.getElementById('ctl00_pageContentHolder_lstJobPick'));
        return true;
        break;
    case 'employeelist':
        document.getElementById('divEmployeeList').style.display = 'block';     
        document.getElementById('tdEmployeeList').style.background = '#FFFFFF';
        document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value = 'employeelist';
        return true;
        break;
    case 'search':       
        document.getElementById('tdSearch').style.background = '#FFFFFF';
        document.getElementById('divSearch').style.display = 'block';            
        document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value = 'search';
        return true;
        break;
    }     
}

/* function - used to display Supervisor name for selected Job Pick Number*/
    function SetSupervisorForJobPickNumber(drpDown)
    {    
        var index = drpDown.selectedIndex;
        if (index == undefined || index == null)
        {
            index = 0;                        
        }        
        var selValue = drpDown.options[index].value;            
        var selarray=selValue.split('~');          
        if(selarray.length > 1)    
            {     
                document.getElementById('ctl00_pageContentHolder_txtSupervisor').value = selarray[1];
            }
    }    


/* function to Switch between Employee and Material View in WorkOrder Screen */
function EnableWorkOrderView(viewName)
{ 
  var varEnableWOMaterial = document.getElementById('ctl00_pageContentHolder_txtHiddenEnableWOMaterial').value; 
  if (varEnableWOMaterial.toLowerCase() == 'false')
  {      
    document.getElementById('tdMaterial').disabled = true;
    if(viewName.toLowerCase() == 'material') {viewName = 'employee';}
  }
  
  if(viewName.toLowerCase() == 'employee')
  {
    document.getElementById('divEmployee').style.display = 'block';
    document.getElementById('divMaterial').style.display = 'none';     
    document.getElementById('divRemarks').style.display = 'none';
    document.getElementById('tdEmployee').style.background = '#FFFFFF';
    document.getElementById('tdMaterial').style.background = '';
    document.getElementById('tdRemarks').style.background = '';
    document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value='Employee';
  }
  if(viewName.toLowerCase() == 'material')
  {
    document.getElementById('divEmployee').style.display = 'none';
    document.getElementById('divMaterial').style.display = 'block';
    document.getElementById('divRemarks').style.display = 'none';        
    document.getElementById('tdEmployee').style.background = '';
    document.getElementById('tdMaterial').style.background = '#FFFFFF';
    document.getElementById('tdRemarks').style.background = '';
    document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value ='Material';
  }  
  if(viewName.toLowerCase() == 'remarks')
  {
    document.getElementById('divEmployee').style.display = 'none';
    document.getElementById('divMaterial').style.display = 'none';
    document.getElementById('divRemarks').style.display = 'block';   
    document.getElementById('tdMaterial').style.background = '';
    document.getElementById('tdEmployee').style.background = '';
    document.getElementById('tdRemarks').style.background = '#FFFFFF';
    document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value ='Remarks';
  }    
}
/* function - used to display details of Employee/Material view in WorkOrder*/
function WorkOrderDropDown(drpName,drpDown)
{    
    var drplist = drpDown;
    var index = drpDown.selectedIndex;    
    var selValue = drpDown.options[index].value;    
    if (selValue == '') 
    {
        if(drpName =='Employee')   
        {
            document.getElementById('ctl00_pageContentHolder_lblGangNo').innerText = '';
            document.getElementById('ctl00_pageContentHolder_lblRC').innerText = '';
        }
        if(drpName =='Manufacturer Parts')   
        {
            document.getElementById('ctl00_pageContentHolder_lblManufacturerName').innerText = '';
            document.getElementById('ctl00_pageContentHolder_lblUnitOfMeasure').innerText = '';
            document.getElementById('ctl00_pageContentHolder_lblCost').innerText = '';
            document.getElementById('ctl00_pageContentHolder_lblManfacturerSerialNo').innerText = '';
        }
        return;
    }
    var selarray=selValue.split('~');  
    if(selarray.length > 0)
    {     
        if(drpName =='Employee')   
        {
        
            document.getElementById('ctl00_pageContentHolder_lblGangNo').innerText = selarray[3];
            document.getElementById('ctl00_pageContentHolder_lblRC').innerText = selarray[2];
        }
        if(drpName =='Manufacturer Parts')   
        {
            document.getElementById('ctl00_pageContentHolder_lblManufacturerName').innerText = selarray[1];
            document.getElementById('ctl00_pageContentHolder_lblManfacturerSerialNo').innerText = selarray[2];
            document.getElementById('ctl00_pageContentHolder_lblUnitOfMeasure').innerText = selarray[3];
            document.getElementById('ctl00_pageContentHolder_lblCost').innerText = selarray[4];
            
        }
    }
}
/* function to enable Stock option */
function ToggleWOMaterialInStockDates()
{
    var rad = document.all('ctl00$pageContentHolder$radInStock');     
    if(rad[1].checked)    
        document.getElementById('stockspan').style.display = 'inline-block';             
    else    
        document.getElementById('stockspan').style.display = 'none';     
}

/* function to Switch between Entry and List View in Outage Screen */
function EnableOutageEntryView(viewName)
{ 
  if(viewName == 'Entry')
  {
    document.getElementById('divEntry').style.display = 'block';
    document.getElementById('divList').style.display = 'none'; 
    document.getElementById('divNonNYCTList').style.display = 'none'; 
    document.getElementById('tdEntry').style.background = '#FFFFFF';
    document.getElementById('tdList').style.background = '';
    document.getElementById('tdNonNYCTList').style.background = '';
    document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value = 'Entry';
  }
  if(viewName == 'List')
  {
    document.getElementById('divEntry').style.display = 'none';
    document.getElementById('divNonNYCTList').style.display = 'none'; 
    document.getElementById('divList').style.display = 'block';
    document.getElementById('tdEntry').style.background ='';
    document.getElementById('tdNonNYCTList').style.background = '';
    document.getElementById('tdList').style.background = '#FFFFFF';
    document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value ='List';
  }  
    if(viewName == 'NonNYCTList')
  {
    document.getElementById('divEntry').style.display = 'none';
    document.getElementById('divList').style.display = 'none';
    document.getElementById('divNonNYCTList').style.display = 'block'; 
    document.getElementById('tdEntry').style.background ='';
    document.getElementById('tdList').style.background = '';
    document.getElementById('tdNonNYCTList').style.background = '#FFFFFF';
    document.getElementById('ctl00_pageContentHolder_txtCurrentTab').value ='NonNYCTList';
  }  
}

function WorkOrderView(lnkName)
{
    var lnkText = document.getElementById('ctl00_pageContentHolder_lnkWOAction').innerText;       
    /*
    var elm = document.getElementById('ctl00_pnlError');
    if  (elm !== null)
    {   document.getElementById('ctl00_lblMasterError').innerText ='';
        elm.style.display = 'none';
    }
    */
    if(lnkText.toLowerCase() == 'new work order entry')
    {    
        document.getElementById('ctl00_pageContentHolder_btnSave1').style.display = 'block';
        document.getElementById('divWorkOrderEntry').style.display = 'block';
        document.getElementById('divWorkOrderList').style.display = 'none';
        document.getElementById('ctl00_pageContentHolder_lnkWOAction').innerText ='Show Work Order List';
    }
    if(lnkText.toLowerCase() =='show work order list')
    {
        document.getElementById('ctl00_pageContentHolder_btnSave1').style.display = 'none';
        document.getElementById('divWorkOrderEntry').style.display = 'none';
        document.getElementById('divWorkOrderList').style.display = 'block';
        document.getElementById('ctl00_pageContentHolder_lnkWOAction').innerText ='New Work Order Entry';
    }
    return false;
}

/* Function used to popup Alternative Path entry if Outage Service Code is 'Long Term Repair' */
function GetAlternativePathEntryform(drpDown)
{      
    var index = drpDown.selectedIndex;    
    var selValue = drpDown.options[index].value;
    var selarray=selValue.split('~');
    
    /* 
    var selText = drpDown.options[index].text;        
    var selarray2=selText.split('-');     
    var searchEquipmentID = document.getElementById('ctl00_pageContentHolder_searchEquipmentGuid').value;    
    var sQuery =  selarray[0] + "&Text=" + drpDown.options[index].text + "&SearchEquipmentID=" + searchEquipmentID +  "&EquipmentID=" +equipmentID; 
    */
    
    var equipmentID = document.getElementById('ctl00_pageContentHolder_drpEquipment').value;
    var sQuery =  selarray[0] + "&Text=" + drpDown.options[index].text + "&EquipmentID=" + equipmentID;
    
    if(selValue.length >0)
    {
         if(selarray[2]=='112')     /*112 = Long Term Repair*/
        {
           document.getElementById('spanChecklist').style.display = 'none';  
            document.getElementById('spanAlternativePath').style.display = 'block';
            /* document.getElementById('ctl00_pageContentHolder_txtHiddenOutageServiceCode').value = selarray[0]; */
            ShowScrollPopup('TextEditor/EEOutageAlternativePathEntry.aspx',sQuery,'','Outage Alternative Path Entry Form','700','500');      
         }  
    }    
}


/* function - used to display checklist for Outage Entry*/
function OutageServiceCodeDropDown(strdrpDown,mode)
{      
    var drpDown = document.getElementById(strdrpDown);    
    var index = drpDown.selectedIndex;        
    var selValue = drpDown.options[index].value;
    var selarray=selValue.split('~');     
    /*    
    var selText = drpDown.options[index].text;        
    var selarray2=selText.split('-');
    var searchEquipmentID = document.getElementById('ctl00_pageContentHolder_searchEquipmentGuid').value;
    */
    var outageGuid = document.getElementById('ctl00_pageContentHolder_txtHiddenOutageGuid').value;    
    var equipmentID = document.getElementById('ctl00_pageContentHolder_drpEquipment').value;
    var sQuery =  selarray[0] + "&Text=" + drpDown.options[index].text + "&OutageGUID=" +outageGuid;      

    document.getElementById('spanChecklist').style.display = 'none';  
        
    /* if(selarray.length >0) */
    if(selValue.length > 0)
    {
        document.getElementById('spanAlternativePath').style.display = 'none'; 
        document.getElementById('spanChecklist').style.display = 'none';
        
        /*121 = Run Machine Running*/
        
        if(selarray[2]=='121')   
        {
            drpDown.disabled=true;
            document.getElementById('ctl00_pageContentHolder_CheckBoxMaintenanceOutage').checked=true;             
        }
        else
        {
            drpDown.disabled=false;               
            document.getElementById('ctl00_pageContentHolder_CheckBoxMaintenanceOutage').checked=false;
        }        
        
        if(selarray[1] =='1')   /* Outage Check List Required = Yes */
        {
            document.getElementById('spanChecklist').style.display = 'block';
            if(mode == '1') return ShowScrollPopup('OutageCheckList.aspx',sQuery,'','Outage Check List','650','400');      
         }  
        else    /* Outage Check List Required = No */
        { 
            if(selarray[2]=='112')   /*112 = Long Term Repair*/
                document.getElementById('spanAlternativePath').style.display = 'block';                         
        }  
        {
         return false;  
       }
    }    
}

function isInteger (s)
{
      var i;
      if (isEmpty(s))
      if (isInteger.arguments.length == 1) return 0;
      else return (isInteger.arguments[1] == true);
      for (i = 0; i < s.length; i++)
      {
         var c = s.charAt(i);
         if (!isDigit(c)) return false;
      }
      return true;
}

function isEmpty(s)
{
      return ((s == null) || (s.length == 0))
}

function isDigit (c)
{
      return ((c >= "0") && (c <= "9"))
}

function isSignedInteger (s)
{
      if (isEmpty(s))
      if (isSignedInteger.arguments.length == 1) return false;
      else return (isSignedInteger.arguments[1] == true);

      else {
         var startPos = 0;
         var secondArg = false;
         if (isSignedInteger.arguments.length > 1)
            secondArg = isSignedInteger.arguments[1];
         // skip leading + or -
         if ( (s.charAt(0) == "-") || (s.charAt(0) == "+") )
            startPos = 1;
         return (isInteger(s.substring(startPos, s.length), secondArg))
      }
}

function isPositiveInteger (s)
{
       var secondArg = false;
       if (isPositiveInteger.arguments.length > 1)
          secondArg = isPositiveInteger.arguments[1];

       // The next line is a bit byzantine.  What it means is:
       // a) s must be a signed integer, AND
       // b) one of the following must be true:
       //    i)  s is empty and we are supposed to return true for
       //        empty strings
       //    ii) this is a positive, not negative, number

       return (isSignedInteger(s, secondArg)
          && ( (isEmpty(s) && secondArg)  || (parseInt (s) > 0) ) );
}


/* function to Validate Work Order Material Stock Date : function WOMaterialValidation()*/
function ValidateWorkOrderMaterialDetails()
{
    var intdate,expdate,deldate;
    
    var strinitiateDate = document.getElementById('ctl00_pageContentHolder_txtDateInitiated').value;
    var strexpectedDate = document.getElementById('ctl00_pageContentHolder_txtMaterialExpectDate').value;
    var strdeliveryDate = document.getElementById('ctl00_pageContentHolder_txtMaterialDeliveryDate').value;
    var strQty = document.getElementById('ctl00_pageContentHolder_txtMaterialQty').value;              
    
    if(strQty =='') {alert('Material Quantity is required'); return false;}       
    if(isNaN(strQty)) {alert('Material Quantity has to be number'); return false;}
    if(parseFloat(strQty)<0) { alert('Material Quantity has to be positive integer number'); return false;}    
    if(isPositiveInteger(strQty)==false) { alert('Material Quantity has to be positive integer number'); return false;}
    
    var index = document.getElementById('ctl00_pageContentHolder_drpMaterial').selectedIndex;
    if(index == 0) { alert('Material is Required');  return false; }   

    var index2 = document.getElementById('ctl00_pageContentHolder_drpManufacturerParts').selectedIndex;
    if(index2 == 0) { alert('Manufacturer Part is Required');  return false; }   
    
    intdate = Date.parse(strinitiateDate);
    expdate = Date.parse(strexpectedDate);
    deldate = Date.parse(strdeliveryDate);
           
    if(expdate < intdate) {alert('Expected Arrival Date cannot be less than Work Order Date Initiated'); return false;}
    if(deldate < expdate) {alert('Actual Delivery Date cannot be less than Expected Arrival Date'); return false;}
    
    return true;
}

/* function to Validate Outage Entry Data */
function OutageEntryValidation()
{
    var strOutOfServiceDate = document.getElementById('ctl00_pageContentHolder_txtOutOfServiceDate').value;
    var strEstRetrunDate    = document.getElementById('ctl00_pageContentHolder_txtEstimatedRetrunDate').value;    
    
    var dt, mon, yr, hr, min;
    var OutOfServiceDate, EstRetrunDate, ActualReturnDate;
    
    if(strOutOfServiceDate == '' && strEstRetrunDate =='') return true;
    
    if(strOutOfServiceDate != '')
    {        
        dt   = parseInt(strOutOfServiceDate.substring(3,5),10);
        mon  = parseInt(strOutOfServiceDate.substring(0,2),10)-1; 
        yr   = parseInt(strOutOfServiceDate.substring(6,10),10); 
        OutOfServiceDate = new Date(yr,mon,dt);
        hr = document.getElementById('ctl00_pageContentHolder_DropDownListDateOSSHour').value;
        min = document.getElementById('ctl00_pageContentHolder_DropDownListDateOSSMin').value;
        OutOfServiceDate.setHours(hr,min);           
    }
    
    if(strEstRetrunDate != '')
    {        
        dt   = parseInt(strEstRetrunDate.substring(3,5),10);
        mon  = parseInt(strEstRetrunDate.substring(0,2),10)-1; 
        yr   = parseInt(strEstRetrunDate.substring(6,10),10); 
        EstRetrunDate = new Date(yr,mon,dt);
        EstRetrunDate.setHours(23,59)   /* to count the whole day*/
    }   
       
    // if(strOutOfServiceDate != '' && strEstRetrunDate != '')  
    // {if(EstRetrunDate < OutOfServiceDate) {alert('Estimated Return To Service Date cannot be less than Out Of Service Date');return false;}}     
    
    var strEquipment = document.getElementById('ctl00_pageContentHolder_drpEquipment').value; 
    if (strEquipment == '' ) {
        alert('Equipment must be filled out');
        return false;
    }   
    
    var drpServiceCode = document.getElementById('ctl00_pageContentHolder_drpServiceCode').value; 
    if (drpServiceCode == '' ) {
        alert('Out of Service code must be filled out');
        return false;
    }   
    
    var strRiderreason = document.getElementById('ctl00_pageContentHolder_drpReason').value; 
    if (strRiderreason == '' ) {
        alert('Rider Reason must be filled out');
        return false;
    }    
    
    var strReportedBy = document.getElementById('ctl00_pageContentHolder_txtReportedBy').value;
    if (strReportedBy == '' ) {
        alert('Reported By must be filled out');
        return false;
    }
    
   var strHiddenOutageStatus =  document.getElementById('ctl00_pageContentHolder_txtHiddenOutageStatus').value;
   var strEstimatedRetrunDate = document.getElementById('ctl00_pageContentHolder_txtEstimatedRetrunDate').value + ' ' + document.getElementById('ctl00_pageContentHolder_ddlEstimatedRetrunHour').value + ':' + document.getElementById('ctl00_pageContentHolder_ddlEstimatedRetrunMinute').value + ':' + '00';
   var strHiddenOriginalEstRTSDate =  document.getElementById('ctl00_pageContentHolder_txtHiddenOriginalEstRTSDate').value;
   if (strHiddenOutageStatus == 'approved') {
        if (strEstimatedRetrunDate != strHiddenOriginalEstRTSDate){
            return confirmationDialog('Are you sure? \nModifying Estimated Return to Service Date of approved outage will update mta.info web pages.\nAll Subscribed Riders will be notified for this equipment.');
        }
   }
   
   var dt_ActualRetrunDate = document.getElementById('ctl00_pageContentHolder_txtActualRetrunDate').value;   
   if (dt_ActualRetrunDate != '') {
        dt   = parseInt(dt_ActualRetrunDate.substring(3,5),10);
        mon  = parseInt(dt_ActualRetrunDate.substring(0,2),10)-1; 
        yr   = parseInt(dt_ActualRetrunDate.substring(6,10),10); 
        hr = document.getElementById('ctl00_pageContentHolder_ddlActualRetrunDateHour').value;
        min = document.getElementById('ctl00_pageContentHolder_ddlActualRetrunDateMinute').value;
        ActualReturnDate = new Date(yr,mon,dt);
        ActualReturnDate.setHours(hr,min);
        if (ActualReturnDate <= OutOfServiceDate) 
            {
            alert('Actual Return To Service Date cannot be same or before Out Of Service Date');
            return false;
        }
        var currentTime = new Date();

        if (ActualReturnDate > currentTime) {
            alert('Return To Service Date Cannot Be a Future Date.');
            return false;
        }
        return confirmationDialog('Are you sure? \nSetting Actual Return to Service Date will close Outage and outage will be removed from Outage List.\nThis will update mta.info web pages and all Subscribed Riders will be notified for this equipment.');
   }   
   return true;   
}

/* function to Validate Outage Entry Data - Closed Outage for Update */
function ClosedOutageEntryValidationforUpdate() {
    /* 
    Only OOS Code, Actual RTS Date, Reported By, Reason to Public, Comment, Outage Response section is allowed to edit
    */
    var drpServiceCode = document.getElementById('ctl00_pageContentHolder_drpServiceCode').value;
    if (drpServiceCode == '') {
        alert('Out of Service code must be filled out');
        return false;
    }

    var strRiderreason = document.getElementById('ctl00_pageContentHolder_drpReason').value;
    if (strRiderreason == '') {
        alert('Rider Reason must be filled out');
        return false;
    }

    var strReportedBy = document.getElementById('ctl00_pageContentHolder_txtReportedBy').value;
    if (strReportedBy == '') {
        alert('Reported By must be filled out');
        return false;
    }

    var strEquipment = document.getElementById('ctl00_pageContentHolder_txtReasonForEdit').value;
    if (strEquipment == '') {
        alert('Reason for Editing/Deleting closed outage must be filled out');
        return false;
    }

    var strOutOfServiceDate = document.getElementById('ctl00_pageContentHolder_txtOutOfServiceDate').value;
    var strActualReturnDate = document.getElementById('ctl00_pageContentHolder_txtActualRetrunDate').value;
    var dt, mon, yr, hr, min;
    var OutOfServiceDate, ActualReturnDate;

    if (strOutOfServiceDate != '') {
        dt = parseInt(strOutOfServiceDate.substring(3, 5), 10);
        mon = parseInt(strOutOfServiceDate.substring(0, 2), 10) - 1;
        yr = parseInt(strOutOfServiceDate.substring(6, 10), 10);
        OutOfServiceDate = new Date(yr, mon, dt);
        hr = document.getElementById('ctl00_pageContentHolder_DropDownListDateOSSHour').value;
        min = document.getElementById('ctl00_pageContentHolder_DropDownListDateOSSMin').value;
        OutOfServiceDate.setHours(hr, min);
    }

    if (strActualReturnDate != '') {
        dt = parseInt(strActualReturnDate.substring(3, 5), 10);
        mon = parseInt(strActualReturnDate.substring(0, 2), 10) - 1;
        yr = parseInt(strActualReturnDate.substring(6, 10), 10);
        hr = document.getElementById('ctl00_pageContentHolder_ddlActualRetrunDateHour').value;
        min = document.getElementById('ctl00_pageContentHolder_ddlActualRetrunDateMinute').value;
        ActualReturnDate = new Date(yr, mon, dt);
        ActualReturnDate.setHours(hr, min);
        
        if (ActualReturnDate <= OutOfServiceDate) {
            alert('Actual Return To Service Date cannot be same or before Out Of Service Date');
            return false;
        }
        var currentTime = new Date();
        
        if (ActualReturnDate > currentTime) {
            alert('Return To Service Date Cannot Be a Future Date.');
            return false;
        }
        return confirmationDialog('Are you sure, you want to update the record?');
    }
    return true;   
}


/* function to Validate Work Order Date */
function ValidateWorkOrderDetails()
{
   ValidatorEnable(document.all('ctl00_pageContentHolder_cvComplDtInitiatedDate'), true);
   if (!(document.all('ctl00_pageContentHolder_cvComplDtInitiatedDate').isvalid)) {return false;}
   
   
   /* var dt_Initiated = document.getElementById('ctl00_pageContentHolder_txtDateInitiated').value;
   var dt_Completed = document.getElementById('ctl00_pageContentHolder_txtDateCompleted').value;        
   var dt,mon,yr;
   var DateInitiated,DateCompleted;
   */
   
   var drpWOType = document.getElementById('ctl00_pageContentHolder_drpWOType').value; 
   if (drpWOType == '' ) {
        alert('Work Order Type is Required');
        return false;        
   } 
   else
   {
        /* Equipment and Component is NOT required for 'Adminstration' work order type   */   
        var selarray=drpWOType.split('~');
        if (selarray.length >0)
        {
            if(selarray[1]=='102')     /* 102 = Administration */
            {
                /* alert('admin');
                return false; */
            }
            else
            {            
                var drpEquipmentNo = document.getElementById('ctl00_pageContentHolder_drpEquipmentNo').value; 
                if (drpEquipmentNo == '' ) {
                    alert('Equipment is Required');
                    return false;
                }                 
                var drpComponentlist = document.getElementById('ctl00_pageContentHolder_drpComponentlist').value; 
                if (drpComponentlist == '' ) {
                    alert('Component is Required');
                    return false;
                }              
            }
        }   
   }  
   
   var drpPriorityCode = document.getElementById('ctl00_pageContentHolder_drpPriorityCode').value; 
   if (drpPriorityCode == '' ) {
        alert('Priority Code is Required');
        return false;
   } 
   
   var drpActionCode = document.getElementById('ctl00_pageContentHolder_drpActionCode').value; 
   if (drpActionCode == '' ) {
        alert('Action Code is Required');
        return false;
   } 
   
   var drpFailureCode = document.getElementById('ctl00_pageContentHolder_drpFailureCode').value; 
   if (drpFailureCode == '' ) {
        alert('Failure Code is Required');
        return false;
   }        

   var drpWorkOrderStatus = document.getElementById('ctl00_pageContentHolder_drpWorkOrderStatus').value; 
   if (drpWorkOrderStatus == '' ) {
        alert('Work Order Status is Required');
        return false;
    }
    if (drpWorkOrderStatus.toUpperCase() == 'D596356A-B0FF-4077-8C68-141D2FD90884' ||
                 drpWorkOrderStatus.toUpperCase() == 'BF66431C-A5F3-4D41-A051-240E95C31A9D' ||
                 drpWorkOrderStatus.toUpperCase() == '4664E659-BD11-49B8-B4A0-7D98823348D6')  
            {
                alert('The Selected Work Order Status is Not Allowed for New Work Orders. Please Select A Different Work Order Status.');
                return false;
            }
   



    /* Yaxin add the following validations on 7/13/2011
        if the user selects work order status as "Abandoned" ('901ec357-7805-4bf7-af9c-b5a14e68f34e'),
        "In Progress" ('d37942a4-5b84-4960-acb0-6adbf64b8f4c'), "Awaiting material" ('4a0e6004-0c2f-4a9e-b854-a58c41446450')
        and "Developing job plan" ('f6b7d2b5-22ab-4db7-8d75-5f91bd2a1fb5'), we send message to the user to correct it. */
            var dt_Completed = document.getElementById('ctl00_pageContentHolder_txtDateCompleted').value;
            if ((drpWorkOrderStatus.toLowerCase() == '901ec357-7805-4bf7-af9c-b5a14e68f34e' ||
                 drpWorkOrderStatus.toLowerCase() == 'd37942a4-5b84-4960-acb0-6adbf64b8f4c' ||
                 drpWorkOrderStatus.toLowerCase() == '4a0e6004-0c2f-4a9e-b854-a58c41446450' ||
                 drpWorkOrderStatus.toLowerCase() == 'f6b7d2b5-22ab-4db7-8d75-5f91bd2a1fb5') && dt_Completed !='') 
            {
                alert('Date Completed can not be specified if work order status is In Progress, Abandoned, Awaiting Material or Developing Job Plan');
                return false;
            }
            /* if the user selects work order status as "Completed" ('eb4aec9a-612f-4152-ad91-6bdb09806a93') and the txtCompletedDate
                is blank, then we send a message to the user to correct it. */
            if (drpWorkOrderStatus.toLowerCase() == 'eb4aec9a-612f-4152-ad91-6bdb09806a93' && dt_Completed == '')
            {
                alert('Date Completed must be specified if the work order status is Completed');
                return false;
            }
            /* if the user selects a completed date, but does not select work load status or selects other statuses other than "Completed",
            ' then we send a message to the user to correct it.*/
            if (dt_Completed != '' && drpWorkOrderStatus.toLowerCase() != 'eb4aec9a-612f-4152-ad91-6bdb09806a93')
            {
                  alert('If Date Completed is specified, the work order status must be Completed');
                  return false;
            }
    
   if (dt_Completed != '' && drpWorkOrderStatus == 'eb4aec9a-612f-4152-ad91-6bdb09806a93') {
        return confirmationDialog('Are you sure? \nSetting Date Completed will close Work Order and work order will be removed from Work Order list.');         
   }
      
   return true;
}

/*function to validate input when user click GO button on Work Order screen*/
function ValidateWorkOrderGoButton()
{
   var drpWOType = document.getElementById('ctl00_pageContentHolder_drpWOType').value; 
   if (drpWOType == '' ) {
        alert('Work Order Type is Required');
        return false;
   } 
   var strtxtEquipmentNo = document.getElementById('ctl00_pageContentHolder_txtEquipmentNo').value;    
   if (strtxtEquipmentNo == ''){
        alert('Equipment Number is Required');
        return false;   
        }
   return true;
}

/* function to Validate Outage Entry Date */
function ValidateWorkOrderEmployeeDetails()
{

   //var hrWorked = document.getElementById('ctl00_pageContentHolder_txtWOEmpRegularHours').value;
   var hrWorked = document.getElementById('ctl00_pageContentHolder_ddnRegularHour').value;
   if(document.getElementById('ctl00_pageContentHolder_ddnOTHour').value == '') { document.getElementById('ctl00_pageContentHolder_ddnOTHour').value='0';}
   var overTime = document.getElementById('ctl00_pageContentHolder_ddnOTHour').value;  
   
   
 
   /*if(hrWorked == 0 && overTime ==0 ){
     
             alert('Regular Hrs and Over Time can not be 0 hrs'); return false;
       
   }*/
   
   var index = document.getElementById('ctl00_pageContentHolder_drpEmployee').selectedIndex;
   
   var dt_Initiated = document.getElementById('ctl00_pageContentHolder_txtDateInitiated').value;
   var dt_Completed = document.getElementById('ctl00_pageContentHolder_txtDateCompleted').value;   
   var dt_WorkDate  = document.getElementById('ctl00_pageContentHolder_txtEmpWorkDate').value;   
   
   var DateInitiated,DateCompleted,WorkDate;
   DateInitiated = Date.parse(dt_Initiated);
   DateCompleted = Date.parse(dt_Completed);
   WorkDate = Date.parse(dt_WorkDate);
   
   if (WorkDate < DateInitiated){ alert('Work Date can not be earlier than Work Order Initiation Date');  return false;}   
   if (WorkDate > DateCompleted){ alert('Work Date can not be after than Work Order Completion Date');  return false;}   
    
   if(index == 0) { alert('Employee is Required');  return false; }   
   
   if(document.getElementById('ctl00_pageContentHolder_txtEmpWorkDate').value == '') { alert('Work Date is Required');  return false; }   
   

   if(document.getElementById('ctl00_pageContentHolder_ddnRegularHour').value == '') { alert('Hours Worked is Required');  return false; }  
   /*if(isNaN(hrWorked)) {alert('Hours Worked has to be number'); return false;}  
   if(isNaN(overTime)) {alert('OverTime has to be number'); return false;}  
    
   if(parseFloat(hrWorked)<0) { alert('Hours Worked has to be positive number'); return false;}
   if(parseFloat(overTime)<0) { alert('Over Time has to be positive number'); return false;}
   */
   if (parseFloat(hrWorked)<0 || parseFloat(hrWorked)>8) { alert('Hours Worked must be 0 - 8 hrs'); return false;}
   if (parseFloat(overTime)<0 || parseFloat(overTime)>16) { alert('Over Time must be 0 - 16 hrs'); return false;}
   
   if (hrWorked == 0 && overTime == 0) { alert('Regular Hrs and Over Time can not be 0 hrs'); return false;}  
   return true;
}

/* Employee Availability screen - Validating selection of employee */
function ConfirmEmployeeSelection(ddlEmployee)
{        
        var index = ddlEmployee.selectedIndex;
        if (index == undefined || index == null)
        {
            index = 0;                        
        }        
        var selValue = ddlEmployee.options[index].value;         
        if (selValue == '')
        {
            alert('Please select employee.');
            return false;            
        }
        else
        {
            return true;
        }
} 

function SetEmployeeLeaveHours(ddlHrsToCharge,txtDateFrom,txtDateTo)
{
    var index = ddlHrsToCharge.selectedIndex;
    if (index == undefined || index == null)
        {
            index = 0;                        
        }        
    var selValue = ddlHrsToCharge.options[index].value;  
    if (selValue !== '8.0')
    {
        txtDateTo.value = txtDateFrom.value;
    }    
    return false;
}
function ResetEmployeeLeaveHours(ddlHrsToCharge,txtDateFrom,txtDateTo)
{
    if (txtDateFrom.value !== txtDateTo.value) 
    {
        ddlHrsToCharge.selectedIndex = 0;
        ddlHrsToCharge.disabled=true;
    }
    else
    {   
        ddlHrsToCharge.disabled=false; 
    }
    return false;
}
    
function ClearWOEmployeeTab()
{    
    document.getElementById('ctl00_pageContentHolder_txtListIndex').value='';
    document.getElementById('ctl00_pageContentHolder_btnEmpAddNew').value='Add To List';    
    document.getElementById('ctl00_pageContentHolder_drpEmployee').selectedIndex =0;    
    document.getElementById('ctl00_pageContentHolder_lblGangNo').innerText='';         
    document.getElementById('ctl00_pageContentHolder_lblRC').innerText='';
    document.getElementById('ctl00_pageContentHolder_lblWOEmployeeMessage').innerText='';
    
    var d = new Date();
    var curr_date = d.getDate();
    var curr_month = d.getMonth();
    curr_month++;
    var curr_year = d.getFullYear();
    if(curr_date<10){curr_date='0'+curr_date}
    if(curr_month<10){curr_month='0'+curr_month}
    document.getElementById('ctl00_pageContentHolder_txtEmpWorkDate').value=curr_month + "/" + curr_date + "/" + curr_year;
    document.getElementById('ctl00_pageContentHolder_txtWOEmpRegularHours').value=0;         
    document.getElementById('ctl00_pageContentHolder_txtWOEmpOT').value=0;
    return false;
}
    
function ClearWOMaterialTab()
{
    document.getElementById('ctl00_pageContentHolder_txtListIndex').value='';
    document.getElementById('ctl00_pageContentHolder_btnMaterialCancel').value='Add To List';        
    document.getElementById('ctl00_pageContentHolder_drpMaterial').selectedIndex =0;
    document.getElementById('ctl00_pageContentHolder_drpManufacturerParts').selectedIndex =0;
    document.getElementById('ctl00_pageContentHolder_lblManufacturerName').innerText='';
    document.getElementById('ctl00_pageContentHolder_lblManfacturerSerialNo').innerText='';
    document.getElementById('ctl00_pageContentHolder_lblUnitOfMeasure').innerText='';
    document.getElementById('ctl00_pageContentHolder_lblCost').innerText='';
    
    document.getElementById('ctl00_pageContentHolder_txtMaterialQty').value='';    
    /*radInStock */
    document.getElementById('ctl00_pageContentHolder_txtMaterialExpectDate').value='';    
    document.getElementById('ctl00_pageContentHolder_txtMaterialDeliveryDate').value='';    
    return false;
}
       
function ValidateMaterialDropdown(aspnetForm)
{
        if (document.all('ctl00_pageContentHolder_drpMaterial').selectedIndex  == 0) {return false;}                
        aspnetForm.submit();
}
           
function ConfirmAddingRemark()
{        
        ValidatorEnable(document.all('ctl00_pageContentHolder_rfvtxtAddRemark'), true);
        if (!(document.all('ctl00_pageContentHolder_rfvtxtAddRemark').isvalid)) {return false;}
        var returnValue;
        returnValue = confirm('Are you sure you want to add remark?');
        return returnValue;        
}   

    
/* function - used to display Equipment No - Equipment part Report*/
function GetEquipmentNofromDescription(drpDown)
{      
    var index = drpDown.selectedIndex;    
    var selValue = drpDown.options[index].innerText;    
    var selarray = selValue.split('-');       
    if(selarray.length >0){document.getElementById('ctl00_pageContentHolder_txtEquipmentNo').value = selarray[0];}    
}

/* function - used to display Job Pick / Employee Associations */
function ToggleJobPickAssociationsTabs(tabName)
{
    document.getElementById('divjobpick').style.display = 'none'; 
    document.getElementById('divEmployee').style.display = 'none';   
    
    document.getElementById('tdjobpick').style.background = '';
    document.getElementById('tdEmployee').style.background = '';
    
    var currentTab = document.getElementById('tabHidddenField').value; 
    //alert('tab name: ' + currentTab);       
    
    if(currentTab=='' && tabName =='')   
      tabName ='jobpick'; 
    
    switch (tabName.toLowerCase())
    {
    case 'jobpick':
        document.getElementById('divJobPick').style.display = 'block';    
        document.getElementById('tdEmployee').style.background = '#FFFFFF';
        document.getElementByID('tabHidddenField').value = 'jobpick';

        return true;
        break;
    case 'employee':
        document.getElementById('divEmployee').style.display = 'block';     
        document.getElementById('tdEmployee').style.background = '#FFFFFF';
        document.getElementByID('tabHidddenField').value = 'employee';
        return true;
        break;
    }     
}

/* function - used to select/de-select all checkbox in the given datagrid */
function dataGridAllSelectDeSelectCheckBox(chkctrl,chkctrlName,dgrdName)
{
    if((chkctrl.checked == false) && (chkctrlName.indexOf(dgrdName) !=-1))
    {
        for(i=0;i< document.forms[0].elements.length;i++)
        {      
            if ((document.forms[0].elements[i].type == 'checkbox') && (document.forms[0].elements[i].name.indexOf('checkAll') > -1)) 
            {
                document.forms[0].elements[i].checked = false;   
                return;
            }
        }
        return;         
    }
    for(i=0;i< document.forms[0].elements.length;i++)
    {
        if((chkctrl.checked == true) && (chkctrlName.indexOf('checkAll') !=-1))
        {
           if ((document.forms[0].elements[i].type == 'checkbox') && (document.forms[0].elements[i].name.indexOf(dgrdName) > -1)) 
            document.forms[0].elements[i].checked = true;                       
        }
        else if((chkctrl.checked == false) && (chkctrlName.indexOf('checkAll') !=-1))
        {
            if ((document.forms[0].elements[i].type == 'checkbox') && (document.forms[0].elements[i].name.indexOf(dgrdName) > -1)) 
                document.forms[0].elements[i].checked = false;                       
        }        
    }        
}

