﻿// JScript File

function ValidateProceedButton(controlIDs,Messages,tdayDate)
{	
        var controlArray = controlIDs.split("|");		
        var messageArray = Messages.split("|");
        var errorArray = new Array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12','13','14','15','16','17');
        var alertMessage=1;
        var errorFlag = '0';
        
        //UserName
        var UserName = document.getElementById(controlArray[0]);
        if (UserName.value.length == 0)
        {        	
        	errorArray[0] = messageArray[0];
        }   
             
        //EmailID
        var EmailID = document.getElementById(controlArray[1]);
        if (EmailID.value.length == 0)
        {
        	errorArray[1] = messageArray[1];
        }
        else
        {
        	var SpecChar = "!#$%^&*()'+{}[]\|:;?/><,~`" + "\"";
        	var frmValue = EmailID.value;

        	for (var i = 0; i < EmailID.value.length; i++)
        	{
        		temp = EmailID.value.substring(i, i + 1)
        		if (SpecChar.indexOf(temp) != -1)
        		{
        			errorArray[1] = messageArray[2];
        		}
        	}

        	var regMail = /^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$/;
        	if (!regMail.test(EmailID.value))
        	{
        		errorArray[1] = messageArray[2];
        	}
        }
        
         //Drop down RO
         var drpRO= document.getElementById(controlArray[3]);
         
        //Service Date
        var txtServiceDate = document.getElementById(controlArray[4]);
        
        //Radio Departure
        var radDeparture = document.getElementById(controlArray[5]);
        
        //Radio Transit
        var radTransit = document.getElementById(controlArray[6]);
        
        //Radio Question1      
        var radArrival = document.getElementById(controlArray[7]); 
        
        //Radio Question2
       // var radQuestion2 = document.getElementById(controlArray[5]);
        
        //Arrival Flight No
        var txtArrivalFlight = document.getElementById(controlArray[9]);
        
        //Arrival Hr
        var drpArrivalHr =document.getElementById(controlArray[10]);
        
        //Arrival Min
        var drpArrivalMin = document.getElementById(controlArray[11]);
                
        //ArrivalFrom -city
        var drpArrivalCity = document.getElementById(controlArray[12]);
        
        //Dep Flight No.
        var txtDepflight = document.getElementById(controlArray[13]);
        
        //Dep Hr
        var drpDepHr = document.getElementById(controlArray[14]);
        
        //Dep Min
        var drpDepMin = document.getElementById(controlArray[15]);
        
        //Dep To -city 
        var drpDepCity = document.getElementById(controlArray[16]);
        
        //Message Label
        var messageDisplay = document.getElementById(controlArray[17]);
        
         //Service Center
		var ddlServiceCenter = document.getElementById(controlArray[18]);

		//Country is missing
		var CountryName = document.getElementById(controlArray[19]);
		if (CountryName.value == -1)
		{
			errorArray[2] = messageArray[17];
		}  
      
        //Mandatory Airport
        if(drpRO.value==-1)
        {
            errorArray[3]= messageArray[3];
            //messageDisplay.innerText=messageArray[0];
            //drpRO.focus();
        }      
       
        
        //Mandatory service Date        
        if(txtServiceDate.value.length==0)
        {
            errorArray[4]= messageArray[4];
        }
        else
        {
            dateStr = txtServiceDate.value;
		    if (IsDate(dateStr))
		    {
			   // var tdayDate = document.getElementById("ctl00_cphPlaza_lblCurrentDate").innerText;
			    var messageArrayDate=DateDifference(tdayDate, dateStr)
			    if (messageArrayDate[0]=="false" && messageArrayDate[1]=='INF00046' )
				    errorArray[12]= messageArray[12];
				else if (messageArrayDate[0]=="false" && messageArrayDate[1]=='INF00034' )
				    errorArray[12]= messageArray[15];
		    }
		    else
			    errorArray[11]= messageArray[11];
		}


		//Mandatory Service Center
		if (ddlServiceCenter.value == -1)
		{
			errorArray[5] = messageArray[16];
		} 
              

        //Mandatory Arrival/Dep Info
        if(radTransit.checked==true || radArrival.checked==true)
        {            
            if(txtArrivalFlight.value.length==0)
            {
                //Arrival Flight No Missing
                errorArray[6]= messageArray[5];
            }
			
            if(drpArrivalHr.value==-1 || drpArrivalMin.value==-1)
            {
                //Dep Time is missing
                errorArray[7]= messageArray[6];
            }

            if(drpArrivalCity.value==-1)
            {
                //Dep City is missing
                errorArray[8]= messageArray[7];
            }   
            
            //Is a transit customer
            if(radTransit.checked==true)
            {           
                if(txtDepflight.value.length==0)
                {
                    //Departure Flight No Missing
                    errorArray[9]= messageArray[8];
                }              
                             
                if(drpDepHr.value==-1 || drpDepMin.value==-1)
                {
                    //Dep Time is missing
                    errorArray[10]= messageArray[9];
                }
             
                if(drpDepCity.value==-1)
                {
                    //Dep City is missing
                    errorArray[11]= messageArray[10];
                } 
                alertMessage=0;                
            }
        }
        else    //Only Departure
        { 
            if(txtDepflight.value.length==0)
             {
                //Departure Flight No Missing
                errorArray[9]= messageArray[8];
             }              
           
             if(drpDepHr.value==-1 || drpDepMin.value==-1)
             {
                //Dep Time is missing
                errorArray[10]= messageArray[9];
             }
             
             if(drpDepCity.value==-1)
             {
                //Dep City is missing
                errorArray[11]= messageArray[10];
             }
            }        
        
        var messageCounter=1;
        for(var i=0; i<=17 ;i++)
        {
            if(errorArray[i] != i)
            {
                messageDisplay.visible=true;
                if(messageCounter==1)
                {
                    messageDisplay.innerHTML= messageCounter +  '. ' + errorArray[i];
                }
                else
                {
					messageDisplay.innerHTML= messageDisplay.innerHTML +   '<br>' +  messageCounter +  '. ' + errorArray[i]
                
                }
                messageCounter=messageCounter+1;
                errorFlag='1';                
            }
        }
        
        if(errorFlag==1)
        {
            return false;
        }
        else
        {
            return true;
        }
    }
   
   function DateDifference(val1, val2)
    {
		//val1 is YYYYMMDD format
		// val2 we have to check 
		var bookingClosingtime = FetchBookingClosingTimeSettings();
		
		var errorArray = new Array('false','');
		 
		if (IsDate(val2))
		{
			var slashOperator = val2.indexOf("/");
			var minusOperator = val2.indexOf("-");
			
			if (minusOperator>0)
				var newArray = val2.split("-");				
			if (slashOperator>0)
				var newArray = val2.split("/");
			
			// if the date is having both / and - operator, e.g. date is 1/1-2000, Invalid date
			if (minusOperator>0 && slashOperator>0)
			{   
			    errorArray[0]='false';
			    errorArray[1]='';
				return errorArray;
			}	
			
			if(newArray[1].length ==1)
				newArray[1] = "0" + parseInt(newArray[1]);				
				
			if (newArray[0].length==1)
				newArray[0] = "0" + parseInt(newArray[0]);
			
			var secondDate = newArray[2] + newArray[1] + newArray[0];
			
			//if (secondDate<=val1)
			
			if(bookingClosingtime <=0 )
			{
			    if( secondDate- val1 >= 0)
			    {
			        errorArray[0]='true';
			        errorArray[1]='';
				    return errorArray;
			    }
			    else
			    {
			        errorArray[0]='false';
			        errorArray[1]='INF00034';
				    return errorArray;
			    }
			}
			else
			{
			    
			    if( secondDate- val1 < 0)
			    {
			        errorArray[0]='false';
			        errorArray[1]='INF00034';
				    return errorArray;
			    }
			    else 
				{			
					var secondDate_year = secondDate.substring(0,4);
					var secondDate_month = parseInt(secondDate.substring(4,6),10) - 1;
					var secondDate_date = secondDate.substring(6,8);
					var va1_year = val1.substring(0,4);
					var val1_month = parseInt(val1.substring(4,6),10) - 1;
					var val1_date = val1.substring(6,8);
					var one_day=1000*60*60*24

					var second = new Date(secondDate_year,secondDate_month,secondDate_date)
					var val = new Date(va1_year,val1_month,val1_date);
					var DateDifference  = Math.ceil((second.getTime()-val.getTime())/(one_day));
					
						if(parseInt(DateDifference,10) <= parseInt(bookingClosingtime,10))
						{
							errorArray[0]='false';
							errorArray[1]='INF00046';
							return errorArray;
						}
			    }		
			}
			//return false;			
			return errorArray;
		}
	}
	
	
	
	