

function ReturnDateClick()
{
    
    var monthYear = document.getElementById(contentPlaceHolderValue + 'cmbRetMon').value;
    var month = monthYear.substr(0,2);
    var year = monthYear.substr(2,4);
    
    var monthYearDept = document.getElementById(contentPlaceHolderValue + 'cmbDeptMon').value;
    var dayDept = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').value,10);
    var monthDept = parseInt(monthYearDept.substring(0,2),10) - 1;
    var yearDept =parseInt(monthYearDept.substring(2,6));
    var startDate = '';
    var endDate = '';
           
    //get the departure date in to javascript date variable.
    var departureDate = new Date();
    departureDate.setDate(dayDept);
    departureDate.setMonth(monthDept);
    departureDate.setFullYear(yearDept);
    //get min and max stay for the fare
    var minStay = document.getElementById(contentPlaceHolderValue + 'MinStay').value;
    //get the units for min and max stay for the fare.
    var minStayUnit = document.getElementById(contentPlaceHolderValue + 'MinUnit').value;
    var deptMonth = monthDept;
    if(minStay != 0)
    {
        if(minStayUnit == 'D')
        {
            //in days
            dayDept += parseInt(minStay,10);            
        }
        else if(minStayUnit == 'M')
        {
            //in months
            monthDept += parseInt(minStay,10);
        }
        else if(minStayUnit == 'Y')
        {
            //in years
            yearDept += parseInt(minStay,10);
        }
        //get the departure date in to javascript date variable.
        var departureDateJS = new Date();
        departureDateJS.setFullYear(yearDept);
        departureDateJS.setMonth(monthDept);
        departureDateJS.setDate(dayDept);           
        dayDept = departureDateJS.getDate();
        monthDept = departureDateJS.getMonth()+1;
        yearDept = departureDateJS.getFullYear();
        
        
        if(monthDept < 10){
            deptMonth = '0'+monthDept;
        }
        else{
            deptMonth = ''+monthDept;
        }
    }    
    
    var destinationPort = document.getElementById(contentPlaceHolderValue + 'Origin').value;
    var originPort = document.getElementById(contentPlaceHolderValue + 'Destination').value;
    var outputDateFormat = 'ddMMyyyy';
    var windowSettings = 'dialogHeight:205px;dialogWidth:360px;scroll:no;status:1';
    
    var lastTravelDate = document.getElementById(contentPlaceHolderValue + 'LastTravelDate').value;
    
    var lastTravelDay = lastTravelDate.substring(0,2);
    var lastTravelMonth = lastTravelDate.substring(2,4);
    var lastTravelYear = lastTravelDate.substring(4,8);
    
    //get the last travel date in to javascript date variable.
    var lastTravelDateJS = new Date();
    lastTravelDateJS.setDate(lastTravelDay);
    lastTravelDateJS.setMonth(lastTravelMonth - 1);
    lastTravelDateJS.setFullYear(lastTravelYear);
    
    //get the date in milli seconds
    var lastTravelDateMilliSeconds = lastTravelDateJS.getTime();
    
    var maxStay = document.getElementById(contentPlaceHolderValue + 'MaxStay').value;        
    var maxStayUnit = document.getElementById(contentPlaceHolderValue + 'MaxUnit').value;
    var maxStayDate = getDateVal(departureDate,maxStay, maxStayUnit);
    var maxStayMilliSeconds = maxStayDate.getTime();
    
    endDate = document.getElementById(contentPlaceHolderValue + 'EndDatePeriod').value;
    
    if('01010001' != lastTravelDate && maxStayMilliSeconds >= lastTravelDateMilliSeconds)
    {
        endDate = lastTravelDate.substring(4,8)+lastTravelDate.substring(2,4)+lastTravelDate.substring(0,2);
    }
    else
    {
        maxStayDay = maxStayDate.getDate();
        monthVal = maxStayDate.getMonth()+1;
        maxStayYear = maxStayDate.getFullYear();
        if(monthVal < 10){
            startMonth = '0'+monthVal;
        }
        else{
            startMonth = ''+monthVal;
        }
        if(maxStayDay < 10){
            startDay = '0'+maxStayDay;
        }
        else{
            startDay = ''+maxStayDay;
        }
        endDate = maxStayYear+startMonth+startDay;        
    }

    var toDate = new Date();
    dayVal = toDate.getDate();
    monthVal = toDate.getMonth()+1;
    yearVal = toDate.getFullYear();
    if(monthVal < 10){
        startMonth = '0'+monthVal;
    }
    else{
        startMonth = ''+monthVal;
    }
    if(dayVal < 10){
        dayValue = '0'+dayVal;
    }
    else{
        dayValue = ''+dayVal;
    }
    startDate = yearVal+startMonth+dayValue;
    
    suffixStartDate = document.getElementById(contentPlaceHolderValue + 'StartDatePeriod').value;
    if (suffixStartDate.length > 8)
    {
        startDate = startDate + suffixStartDate.substring(8, suffixStartDate.length);
    }
    
    var isValidDate = IsValidDate(month + "/" + document.getElementById(contentPlaceHolderValue + 'cmbRetDay').value + "/" + year);
    if (isValidDate)
    {
        var qryStr = '/sites/Etihad/_layouts/Etihad/obe/ShowCalenderX.aspx?Day=' + 
            document.getElementById(contentPlaceHolderValue + 'cmbRetDay').value + "&month=" + 
            month + "&year=" + year + '&txtDay=' + 
            document.getElementById(contentPlaceHolderValue + 'cmbRetDay').id + '&txtMonth=' + 
            document.getElementById(contentPlaceHolderValue + 'cmbRetMon').id + '&SessionKey=Ret' +
            '&txtYear=txtYear&Source=Return'+
            '&DeptDay=' + dayDept + "&DeptMonth=" + deptMonth+
            '&OutputDateFormat=' + outputDateFormat + '&OriginPort='+originPort+
            '&DestPort='+destinationPort+'&StartDate='+startDate+'&EndDate='+endDate;
            var returnValue = window.open(qryStr, 'SS',  'status=1,height=163, width=355,left = 162,top = 134',''); 
     }
}

function DeptDateClick()
{
    var monthYear = document.getElementById(contentPlaceHolderValue + 'cmbDeptMon').value;
    var month = monthYear.substr(0,2);
    var year = monthYear.substr(2,4);
    var dayDept = document.getElementById(contentPlaceHolderValue + 'StartDay').value;
    var deptMonth = document.getElementById(contentPlaceHolderValue + 'StartMonth').value;
    var isValidDate = IsValidDate(month + "/" + document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').value + "/" + year);
    var originPort = document.getElementById(contentPlaceHolderValue + 'Origin').value;
    var destinationPort = document.getElementById(contentPlaceHolderValue + 'Destination').value;
    var outputDateFormat = 'ddMMyyyy';
    var windowSettings = 'dialogHeight:205px;dialogWidth:360px;scroll=no';
    var startDate = document.getElementById(contentPlaceHolderValue + 'StartDatePeriod').value;
    var endDate = document.getElementById(contentPlaceHolderValue + 'EndDatePeriod').value;
    
    if (isValidDate)
    {
        var qryStr = '/sites/Etihad/_layouts/Etihad/obe/ShowCalenderX.aspx?Day=' + 
            document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').value + "&month=" + 
            month + "&year=" + year + '&txtDay=' + 
            document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').id + '&txtMonth=' + 
            document.getElementById(contentPlaceHolderValue + 'cmbDeptMon').id + '&SessionKey=Dept'+
            '&txtYear=txtYear&Source=Return'+
            '&DeptDay=' + dayDept + "&DeptMonth=" + deptMonth+
            '&OutputDateFormat=' + outputDateFormat + '&OriginPort='+originPort+
            '&DestPort='+destinationPort+'&StartDate='+startDate+'&EndDate='+endDate;
        var returnValue = window.open(qryStr, 'SS',  'status=1,height=163, width=355,left = 162,top = 134','');
    }
}

    function CompareDates()
    {
        var tripType = document.getElementById(contentPlaceHolderValue + 'TripType').value;
        
        if (tripType != null && tripType == 'R')
        {
            var monthYearRet = document.getElementById(contentPlaceHolderValue + 'cmbRetMon').value;
            var dayRet = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbRetDay').value,10);        
            var monthRet = parseInt(monthYearRet.substring(0,2),10);
            var yearRet = parseInt(monthYearRet.substring(2,6));
            var monthYearDept = document.getElementById(contentPlaceHolderValue + 'cmbDeptMon').value;
            var dayDept = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').value,10);
            var monthDept = parseInt(monthYearDept.substring(0,2),10);
            var yearDept =parseInt(monthYearDept.substring(2,6));
            //get min and max stay for the fare
            var minStay = document.getElementById(contentPlaceHolderValue + 'MinStay').value;
            //get the units for min and max stay for the fare.
            var minStayUnit = document.getElementById(contentPlaceHolderValue + 'MinUnit').value;
            if(minStay != 0)
            {
                monthDept = monthDept - 1;
                if(minStayUnit == 'D')
                {
                    //in days
                    dayDept += parseInt(minStay,10);            
                }
                else if(minStayUnit == 'M')
                {
                    //in months
                    monthDept += parseInt(minStay,10);
                }
                else if(minStayUnit == 'Y')
                {
                    //in years
                    yearDept += parseInt(minStay,10);
                }           
                //get the departure date in to javascript date variable.
                var departureDateJS = new Date();
                departureDateJS.setDate(1);      
                departureDateJS.setMonth(0);
                departureDateJS.setFullYear(yearDept);
                departureDateJS.setMonth(monthDept);
                departureDateJS.setDate(dayDept);           
                dayDept = departureDateJS.getDate();
                monthDept = departureDateJS.getMonth()+1;
                yearDept = departureDateJS.getFullYear();            
                if(monthDept < 10){
                    monthYearDept = '0'+monthDept+yearDept;
                }
                else{
                    monthYearDept = ''+monthDept+yearDept;
                }
            }
            if ( (yearRet == yearDept) && (monthRet == monthDept) )
            {
                if(dayRet < dayDept)
                {
                    for(i=0;i<document.getElementById(contentPlaceHolderValue + 'cmbRetDay').options.length;i++)
                    {
                        if(document.getElementById(contentPlaceHolderValue + 'cmbRetDay').options[i].value == dayDept)
                        {
                            document.getElementById(contentPlaceHolderValue + 'cmbRetDay').options[i].selected = true;
                        }
                    }
                }
            }
            else
            {
                if (((yearRet == yearDept) && (monthRet < monthDept)) ||
                (yearRet < yearDept) )
                {
                    for(i=0;i<document.getElementById(contentPlaceHolderValue + 'cmbRetMon').options.length;i++)
                    {
                        if(document.getElementById(contentPlaceHolderValue + 'cmbRetMon').options[i].value == monthYearDept)
                        {
                            document.getElementById(contentPlaceHolderValue + 'cmbRetMon').options[i].selected = true;
                            for(i=0;i<document.getElementById(contentPlaceHolderValue + 'cmbRetDay').options.length;i++)
                            {
                                if(document.getElementById(contentPlaceHolderValue + 'cmbRetDay').options[i].value == dayDept)
                                {
                                    document.getElementById(contentPlaceHolderValue + 'cmbRetDay').options[i].selected = true;
                                }
                            }
                        }
                    }
                }
            }
        }
    }
    
    function getDateVal(dateVal,addVal, addUnit)
    {
        var dayDept = dateVal.getDate();
        var monthDept = dateVal.getMonth();
        var yearDept = dateVal.getFullYear();
        if(addUnit == 'D')
        {
            //in days
            dayDept += parseInt(addVal,10);            
        }
        else if(addUnit == 'M')
        {
            //in months
            monthDept += parseInt(addVal,10);
        }
        else if(addUnit == 'Y')
        {
            //in years
            yearDept += parseInt(addVal,10);
        }
        //get the departure date in to javascript date variable.
        var dateReturn = dateVal;
        dateReturn.setFullYear(yearDept);
        dateReturn.setMonth(monthDept);
        dateReturn.setDate(dayDept);        
        return dateReturn;
    }
    
    function ValidatePassengerNo(source, arguments)
    {
        var noOfChild = 0;
        var isFixedPax = false;
        var noOfAdult = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbAdult').value,10);
        var isChildAllowed = document.getElementById(contentPlaceHolderValue + 'IsChildAllowed').value;
        if('Y' == isChildAllowed)
        {
	       var childFraction = document.getElementById(contentPlaceHolderValue + 'ChildFraction').value;
	       noOfChild = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbChild').value)*childFraction;
	    }
	    var totalPassengers = noOfAdult + noOfChild;
	    var fixedPassenger = document.getElementById(contentPlaceHolderValue + 'FixedPassenger').value;
	    var fixedPax = fixedPassenger.split(",");
	    if(0 != fixedPassenger)
	    {
	        for (var i=0;i<fixedPax.length;i++) 
            {
                if (fixedPax[i] == totalPassengers) 
                {
                    isFixedPax = true;
                    break;
                }
            }
            if(isFixedPax == false)
            {
                strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_541_INVALIDFIXEDPESSENGERNO").value;            
                document.getElementById(contentPlaceHolderValue + "custValPassCount").errormessage = strErrMsg;            
                arguments.IsValid = false;
            }
	    }
	    else
	    {
	        var maxPassengers = parseInt(document.getElementById(contentPlaceHolderValue + 'MaxPassengers').value);
	        var minPassengers = parseInt(document.getElementById(contentPlaceHolderValue + 'MinPassengers').value);
	        if(totalPassengers < minPassengers)
            {
                strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_540_INVALIDMINPESSENGERNO").value;            
                document.getElementById(contentPlaceHolderValue + "custValPassCount").errormessage = strErrMsg;            
                arguments.IsValid = false;
            }
	        else if(0 != maxPassengers)
	        { 
                if(totalPassengers > maxPassengers)
                {
                    strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_535_INVALIDMAXPESSENGERNO").value;            
                    document.getElementById(contentPlaceHolderValue + "custValPassCount").errormessage = strErrMsg;            
                    arguments.IsValid = false;
                }
            } 
        }       
    }
    
    function ValidateLastTravelDate(source, arguments)
    {
        //get the last travel date defined.
        var lastTravelDate = document.getElementById(contentPlaceHolderValue + 'LastTravelDate').value; 
        
        if('01010001' != lastTravelDate)
        {
          
            var lastTravelYear = lastTravelDate.substring(4,8);
            var lastTravelMonth = lastTravelDate.substring(2,4);
            var lastTravelDay = lastTravelDate.substring(0,2);
            
            //get the last travel date in to javascript date variable.
            var lastTravelDateJS = new Date();
            lastTravelDateJS.setFullYear(lastTravelYear);
            lastTravelDateJS.setMonth(lastTravelMonth - 1);
            lastTravelDateJS.setDate(lastTravelDay);
                        
            //get the date in milli seconds
            var lastTravelDateMilliSeconds = lastTravelDateJS.getTime();
            
            //get the user entered return date
            var retMonthYear = document.getElementById(contentPlaceHolderValue + 'cmbRetMon').value;
            var retMonth = retMonthYear.substring(0,2);
            var retYear = retMonthYear.substring(2,6);
            var retDay = document.getElementById(contentPlaceHolderValue + 'cmbRetDay').value;
            
            //get the return date in to javascript date variable.
            var returnDateJS = new Date();
            returnDateJS.setFullYear(retYear);
            returnDateJS.setMonth(retMonth - 1);
            returnDateJS.setDate(retDay);
            
            //get the date in milli seconds
            var returnDateMilliSeconds = returnDateJS.getTime();
             
            if(returnDateMilliSeconds > lastTravelDateMilliSeconds)
            {
                strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_538_INVALIDLASTTRAVELDATE").value;            
                document.getElementById(contentPlaceHolderValue + "custValLastTravelDate").errormessage = strErrMsg;            
                arguments.IsValid = false;
            }
            //departure date need not be checked, as user will not be able
            //select departure date after return date.
        }
    }
    
    function ValidateAPRDays(source, arguments)
    {
        //get the apr days for the fare.
        var aprDays = document.getElementById(contentPlaceHolderValue + 'AprDays').value;
        if(!isNaN(aprDays) )
        {
            //get user entered departure date.
            var depMonthYear = document.getElementById(contentPlaceHolderValue + 'cmbDeptMon').value;
            var depMonth = parseInt(depMonthYear.substring(0,2),10);
	        var depYear = parseInt(depMonthYear.substring(2,6));
            var depDay = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').value,10);
                
            //get the departure date in to javascript date variable.
            var departureDateJS = new Date();
            departureDateJS.setFullYear(depYear);
            departureDateJS.setMonth(depMonth - 1);
            departureDateJS.setDate(depDay);
            
                
            //get the date in milli seconds
            var departureDateMilliSeconds = departureDateJS.getTime();        
            
            //get todays date in js date object.
            var today = new Date();
            //add apr days to today.
            var day = today.getDate();
            day = day + parseInt(aprDays,10);
            today.setDate(day);
            
            //get todays date in milli seconds.
            var todayMillisecond = today.getTime();
            if(departureDateMilliSeconds < todayMillisecond)
            {
                strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_544_INVALIDAPRDEARTUREDATE").value;            
                document.getElementById(contentPlaceHolderValue + "CustValAPRDays").errormessage = strErrMsg;            
                arguments.IsValid = false;
            }   
        }
    }
    
    function ValidteDeparturePeroid(source, arguments)
    {
        //get user entered departure date.
        var depMonthYear = document.getElementById(contentPlaceHolderValue + 'cmbDeptMon').value;
        var depMonth = parseInt(depMonthYear.substring(0,2),10);
	    var depYear = parseInt(depMonthYear.substring(2,6));
        var depDay = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').value,10);
        
        //get fare start date and compare it with user entered departure date.
        var fareStartDate = document.getElementById(contentPlaceHolderValue + 'FareStartDate').value;
        var fareStartDay = parseInt(fareStartDate.substring(0,2),10);
        var fareStartMonth = parseInt(fareStartDate.substring(2,4),10);
        var fareStartYear = parseInt(fareStartDate.substring(4,8));
        var validPeriod = true;
        //if fare start year is after departure year, then error.
        if(fareStartYear>depYear)
        {
            validPeriod = false;            
        }
        //if fare start year equal to departure year, compare months.
        else if(fareStartYear == depYear)
        {
            //if fare start month is after departure month, then error.
            if(fareStartMonth > depMonth)
            {
                validPeriod = false;
            }
            //if fare start months and ldeparture month are equal, then compare days.
            else if(fareStartMonth == depMonth)
            {
                //if fare start day is after departure day, then error.
                if(fareStartDay > depDay)
                {
                    validPeriod = false;
                }
            }
        }
        if(validPeriod)
        {
            //get fare end date and compare it with user entered departure date.
            var fareEndDate = document.getElementById(contentPlaceHolderValue + 'FareEndDate').value;
            var fareEndDay = fareEndDate.substring(0,2);
            var fareEndMonth = fareEndDate.substring(2,4);
            var fareEndYear = fareEndDate.substring(4,8);
            
            //if fare end year is before departure year, then error.
            if(fareEndYear < depYear)
            {
                validPeriod = false;            
            }
            //if fare end year equal to departure year, compare months.
            else if(fareEndYear == depYear)
            {
                //if fare end month is before departure month, then error.
                if(fareEndMonth < depMonth)
                {
                    validPeriod = false;
                }
                //if fare end months and ldeparture month are equal, then compare days.
                else if(fareEndMonth == depMonth)
                {
                    //if fare end day is before departure day, then error.
                    if(fareEndDay < depDay)
                    {
                        validPeriod = false;
                    }
                }
            }
        }
        if(!validPeriod)
        {
            strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_539_INVALIDDEPARTUREPERIOD").value;            
            document.getElementById(contentPlaceHolderValue + "custValDepPeriod").errormessage = strErrMsg;            
            arguments.IsValid = false;
        }
    }
    
    function ValidDeparturePeriod(source, arguments)
    {
        var strStartDate = document.getElementById(contentPlaceHolderValue + 'EarliestDateList').value;
        var strEndDate = document.getElementById(contentPlaceHolderValue + 'LatestDateList').value;
        var startDateArray = strStartDate.split(',');
        var endDateArray = strEndDate.split(',');
        //get user entered departure date.
        var depMonthYear = document.getElementById(contentPlaceHolderValue + 'cmbDeptMon').value;
        var depMonth = parseInt(depMonthYear.substring(0,2),10);
        var depYear = parseInt(depMonthYear.substring(2,6));
        var depDay = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').value,10);
            
        //get the departure date in to javascript date variable.
        var departureDateJS = new Date();
        departureDateJS.setYear(1900);
        departureDateJS.setMonth(0);
        departureDateJS.setDate(1);
        departureDateJS.setDate(depDay);
        departureDateJS.setMonth(depMonth - 1);
        departureDateJS.setFullYear(depYear);
        departureDateJS.setHours(0);
        departureDateJS.setMinutes(0);
        departureDateJS.setSeconds(0);
        departureDateJS.setMilliseconds(0);
        //get the date in milli seconds
        var departureDateMilliSeconds = departureDateJS.getTime();
        var validDate = false;  
        if(startDateArray.length == endDateArray.length)
        {
            for(i=0; i<endDateArray.length; i++)
            {
                if('' != startDateArray[i])
                {
                    var startDate = new Date(startDateArray[i]);
                    startDate.setHours(0);
                    startDate.setMinutes(0);
                    startDate.setSeconds(0);
                    startDate.setMilliseconds(0);
                    if('' != endDateArray[i])
                    {
                        var endDate = new Date(endDateArray[i]);
                        endDate.setHours(0);
                        endDate.setMinutes(0);
                        endDate.setSeconds(0);
                        endDate.setMilliseconds(0);
                        if(!(departureDateMilliSeconds > endDate.getTime() ||
                            departureDateMilliSeconds < startDate.getTime()))
                        {
                            
                            validDate = true;
                            break;
                        }
                    }
                    else
                    {
                        if(departureDateMilliSeconds >= startDate.getTime())
                        {
                            validDate = true;
                            break;
                        }
                    }
                }
            }
            if(validDate == false)
            {
                strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_539_INVALIDDEPARTUREPERIOD").value;            
                document.getElementById(contentPlaceHolderValue + "custValDepPeriod").errormessage = strErrMsg;            
                arguments.IsValid = false;
            }
        }
    }
    
    function ValidateMinMaxStay(source, arguments)
    {
        var tripType = document.getElementById(contentPlaceHolderValue + 'TripType').value;
        
        if (tripType != null && tripType == 'R')
        {
            //get the user entered return date
            var retMonthYear = document.getElementById(contentPlaceHolderValue + 'cmbRetMon').value;
            var retMonth = retMonthYear.substring(0,2);
            var retYear = retMonthYear.substring(2,6);
            var retDay = document.getElementById(contentPlaceHolderValue + 'cmbRetDay').value;       
            
            //get the user entered departure date
            var depMonthYear = document.getElementById(contentPlaceHolderValue + 'cmbDeptMon').value;
            var depMonth = depMonthYear.substring(0,2);
	        var depYear = depMonthYear.substring(2,6);
            var depDay = document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').value;
            
            //get min and max stay for the fare
            var minStay = document.getElementById(contentPlaceHolderValue + 'MinStay').value;
            var maxStay = document.getElementById(contentPlaceHolderValue + 'MaxStay').value;
            //get the units for min and max stay for the fare.
            var minStayUnit = document.getElementById(contentPlaceHolderValue + 'MinUnit').value;
            var maxStayUnit = document.getElementById(contentPlaceHolderValue + 'MaxUnit').value;
            //declare variable for users stay duration in each unit.
            var passengerStayDays = 0;
            var passengerStayMonths = 0;
            var passengerStayYears = 0;
            //get the passenger stay duration for the respective units from the user selected date.
            if(minStayUnit == 'D' || maxStayUnit == 'D')
            {
                //in days
                var passengerStayDays = getPassengerStayDays(retDay,retMonth, retYear, depDay, depMonth, depYear);
            }
            if(minStayUnit == 'M' || maxStayUnit == 'M')
            {
                //in months
                var passengerStayMonths = getPassengerStayMonths(retMonth, retYear, depMonth, depYear);
            }
            if(minStayUnit == 'Y' || maxStayUnit == 'Y')
            {
                //in years
                var passengerStayYears = getPassengerStayYears(retYear,depYear);
            }
            //compare user stay duration with the pedefined min stay value of the fare.
            if(minStayUnit == 'D')
            {
                if(passengerStayDays<minStay)
                {
                    strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_536_INVALIDMINSTAY").value;            
                    document.getElementById(contentPlaceHolderValue + "custValMinMaxStay").errormessage = strErrMsg;            
                    arguments.IsValid = false;
                }
            }
            else if(minStayUnit == 'M')
            {
                if(passengerStayMonths<minStay)
                {
                    strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_536_INVALIDMINSTAY").value;            
                    document.getElementById(contentPlaceHolderValue + "custValMinMaxStay").errormessage = strErrMsg;            
                    arguments.IsValid = false;
                }
            }
            else
            {
                if(passengerStayYears<minStay)
                {
                    strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_536_INVALIDMINSTAY").value;            
                    document.getElementById(contentPlaceHolderValue + "custValMinMaxStay").errormessage = strErrMsg;            
                    arguments.IsValid = false;
                }
            }
            //compare user stay duration with the pedefined max stay value of the fare.
            if(maxStayUnit == 'D')
            {
                if(passengerStayDays>maxStay)
                {
                    strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_537_INVALIDMAXSTAY").value;            
                    document.getElementById(contentPlaceHolderValue + "custValMinMaxStay").errormessage = strErrMsg;            
                    arguments.IsValid = false;
                }
            }
            else if(maxStayUnit == 'M')
            {
                if(passengerStayMonths>maxStay)
                {
                   strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_537_INVALIDMAXSTAY").value;            
                    document.getElementById(contentPlaceHolderValue + "custValMinMaxStay").errormessage = strErrMsg;            
                    arguments.IsValid = false;
                }
            }
            else
            {
                if(passengerStayYears>maxStay)
                {
                    strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_537_INVALIDMAXSTAY").value;            
                    document.getElementById(contentPlaceHolderValue + "custValMinMaxStay").errormessage = strErrMsg;            
                    arguments.IsValid = false;
                }
            }
        }
    }
    
    
    function getPassengerStayDays(retDay, retMonth,retYear,depDay, depMonth,depYear)
    {
        var passengerStay = 0;
        if(retYear == depYear)
        {
            if(retMonth == depMonth)
            {
                passengerStay = parseInt(retDay,10) - parseInt(depDay,10);
            }
            else if(parseInt(retMonth,10) > parseInt(depMonth,10))
            {
                for(i=parseInt(depMonth,10); i<=parseInt(retMonth,10); i++)
                {
                    if(i == parseInt(depMonth,10))
                    {
                        passengerStay+=(getNoOfDays(parseInt(depMonth,10),parseInt(depYear,10)) - parseInt(depDay,10));
                    }
                    else if(i == parseInt(retMonth,10))
                    {
                        passengerStay+=parseInt(retDay,10);
                    }
                    else
                    {
                        passengerStay+=getNoOfDays(i,parseInt(depYear,10));
                    }
                }
            }
        }
        else if(parseInt(retYear,10) > parseInt(depYear,10))
        {
            for(i=parseInt(depMonth,10); i<=12; i++)
            {
                if(i == parseInt(depMonth,10))
                {
                    passengerStay+=getNoOfDays(parseInt(depMonth,10),parseInt(depYear,10)) - parseInt(depDay,10);
                }
                else
                {
                    passengerStay+=getNoOfDays(i,parseInt(depYear,10));
                }
            }
            for(i=1; i<=parseInt(retMonth,10); i++)
            {
                if(i == parseInt(retMonth,10))
                {
                    passengerStay+=parseInt(retDay,10);
                }
                else
                {
                    passengerStay+=getNoOfDays(i,parseInt(retYear,10));
                }
            }
        }
        return passengerStay;
    }
    
    
//    function getPassengerStayDays(retDay, retMonth,retYear,depDay, depMonth,depYear)
//    {
//        //get the return date in to javascript date variable.
//        var returnDateJS = new Date();
//        alert(retMonth);
//        alert(depMonth);
//        returnDateJS.setDate(retDay);
//        returnDateJS.setMonth(retMonth-1);
//        returnDateJS.setFullYear(retYear);
//        alert(returnDateJS);
//        //get the time in milliseconds
//        var returnDateMilliSeconds = returnDateJS.getTime();
//        //get the departure date in to javascript date variable.
//        var departureDateJS = new Date();
//        departureDateJS.setDate(depDay);
//        departureDateJS.setMonth(depMonth-1);
//        departureDateJS.setFullYear(depYear);
//        alert(departureDateJS);
//        //get the time in milliseconds
//        var departureDateMilliSeconds = departureDateJS.getTime();
//        
//        //get the difference in milliseconds between the dates.
//        var diffInMilliSeconds = returnDateMilliSeconds - departureDateMilliSeconds;
//        //get the difference in days between the dates.
//        var passengerStay = diffInMilliSeconds/1000/60/60/24;   
//        alert(passengerStay);     
//        return parseInt(passengerStay);
//    }
    
    function getPassengerStayMonths(retMonth,retYear,depMonth,depYear)
    {
        var passengerStay = 0;
        if(retYear == depYear)
        {
            passengerStay = retMonth - depMonth;
        }
        else if(retYear > depYear)
        {
            for(i = depYear; i <= retYear; i++)
            {
                if(i == depYear)
                {
                    passengerStay += 12 - parseInt(depMonth,10);
                }
                else if(i == retYear)
                {
                    passengerStay += parseInt(retMonth,10);
                }
                else
                {
                    passengerStay += 12;
                }
            }
        }
        return parseInt(passengerStay,10);        
    }
    
    function getPassengerStayYears(retYear,depYear)
    {
        var passengerStay = 0;
        if(retYear == depYear)
        {
            passengerStay = 0;
        }
        else if(retYear > depYear)
        {
            passengerStay += parseInt(retYear) - parseInt(depYear);
        }
        return parseInt(passengerStay,10);
    }
    
    function getNoOfDays(month,year)
    {
        if((year % 4) == 0 && month == 2)
        {
           return 29;
        }
        else if(month == 2)
        {
            return 28;
        }
        else if((month == 4 || month == 6 || month == 9 || month == 11))
        {
            return 30;
        }
        else
        {
            return 31;
        }
    }
    
     //added by amit t
function getTheDay(strDate)

    {
        myDays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
        myDate=new Date(eval('"'+ strDate+'"'));

        var retDay = myDays[myDate.getDay()];
        return retDay;
    }



    var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
    var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
    function LZ(x) {return(x<0||x>9?"":"0")+x}

    function isDate(val,format) 
    {
        var date=getDateFromFormat(val,format);
        if (date==0) { return false; }
        return true;
    }

    function formatDate(date,format) 
    {
        format=format+"";
        var result="";
        var i_format=0;
        var c="";
        var token="";
        var y=date.getYear()+"";
        var M=date.getMonth()+1;
        var d=date.getDate();
        var E=date.getDay();
        var H=date.getHours();
        var m=date.getMinutes();
        var s=date.getSeconds();
        var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
        // Convert real date parts into formatted versions
        var value=new Object();

        if (y.length < 4) {y=""+(y-0+1900);}
        value["y"]=""+y;
        value["yyyy"]=y;
        value["yy"]=y.substring(2,4);
        value["M"]=M;
        value["MM"]=LZ(M);
        value["MMM"]=MONTH_NAMES[M-1];
        value["NNN"]=MONTH_NAMES[M+11];
        value["d"]=d;
        value["dd"]=LZ(d);
        value["E"]=DAY_NAMES[E+7];
        value["EE"]=DAY_NAMES[E];
        value["H"]=H;
        value["HH"]=LZ(H);
        if (H==0){value["h"]=12;}
        else if (H>12){value["h"]=H-12;}
        else {value["h"]=H;}
        value["hh"]=LZ(value["h"]);
        if (H>11){value["K"]=H-12;} else {value["K"]=H;}
        value["k"]=H+1;
        value["KK"]=LZ(value["K"]);
        value["kk"]=LZ(value["k"]);
        if (H > 11) { value["a"]="PM"; }
        else { value["a"]="AM"; }
        value["m"]=m;
        value["mm"]=LZ(m);
        value["s"]=s;
        value["ss"]=LZ(s);
        while (i_format < format.length) {
               c=format.charAt(i_format);
               token="";
               while ((format.charAt(i_format)==c) && (i_format < format.length)) {
                       token += format.charAt(i_format++);
                       }
               if (value[token] != null) { result=result + value[token]; }
               else { result=result + token; }
               }
        return result;
    }

    function _isInteger(val) 
    {
            var digits="1234567890";
            for (var i=0; i < val.length; i++) 
            {
               if (digits.indexOf(val.charAt(i))==-1)
                { 
                return false; 
                }
            }
            return true;
    }
    
    function _getInt(str,i,minlength,maxlength) 
    {
            for (var x=maxlength; x>=minlength; x--) 
            {
                   var token=str.substring(i,i+x);
                   if (token.length < minlength) { return null; }
                   if (_isInteger(token)) { return token; }
            }
            return null;
    }

 

    function getDateFromFormat(val,format) 
{

        val=val+"";

        format=format+"";

        var i_val=0;

        var i_format=0;

        var c="";

        var token="";

        var token2="";

        var x,y;

        var now=new Date();

        var year=now.getYear();

        var month=now.getMonth()+1;

        var date=1;

        var hh=now.getHours();

        var mm=now.getMinutes();

        var ss=now.getSeconds();

        var ampm="";

        

        while (i_format < format.length) {

               // Get next token from format string

               c=format.charAt(i_format);

               token="";

               while ((format.charAt(i_format)==c) && (i_format < format.length)) {

                       token += format.charAt(i_format++);

                       }

               // Extract contents of value based on format token

               if (token=="yyyy" || token=="yy" || token=="y") {

                       if (token=="yyyy") { x=4;y=4; }

                       if (token=="yy")   { x=2;y=2; }

                       if (token=="y")    { x=2;y=4; }

                       year=_getInt(val,i_val,x,y);

                       if (year==null) { return 0; }

                       i_val += year.length;

                       if (year.length==2) {

                               if (year > 70) { year=1900+(year-0); }

                               else { year=2000+(year-0); }

                               }

                       }

               else if (token=="MMM"||token=="NNN"){

                       month=0;

                       for (var i=0; i<MONTH_NAMES.length; i++) {

                               var month_name=MONTH_NAMES[i];

                               if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {

                                      if (token=="MMM"||(token=="NNN"&&i>11)) {

                                              month=i+1;

                                              if (month>12) { month -= 12; }

                                              i_val += month_name.length;

                                              break;

                                              }

                                      }

                               }

                       if ((month < 1)||(month>12)){return 0;}

                       }

               else if (token=="EE"||token=="E"){

                       for (var i=0; i<DAY_NAMES.length; i++) {

                               var day_name=DAY_NAMES[i];

                               if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {

                                      i_val += day_name.length;

                                      break;

                                      }

                               }

                       }

               else if (token=="MM"||token=="M") {

                       month=_getInt(val,i_val,token.length,2);

                       if(month==null||(month<1)||(month>12)){return 0;}

                       i_val+=month.length;}

               else if (token=="dd"||token=="d") {

                       date=_getInt(val,i_val,token.length,2);

                       if(date==null||(date<1)||(date>31)){return 0;}

                       i_val+=date.length;}

               else if (token=="hh"||token=="h") {

                       hh=_getInt(val,i_val,token.length,2);

                       if(hh==null||(hh<1)||(hh>12)){return 0;}

                       i_val+=hh.length;}

               else if (token=="HH"||token=="H") {

                       hh=_getInt(val,i_val,token.length,2);

                       if(hh==null||(hh<0)||(hh>23)){return 0;}

                       i_val+=hh.length;}

               else if (token=="KK"||token=="K") {

                       hh=_getInt(val,i_val,token.length,2);

                       if(hh==null||(hh<0)||(hh>11)){return 0;}

                       i_val+=hh.length;}

               else if (token=="kk"||token=="k") {

                       hh=_getInt(val,i_val,token.length,2);

                       if(hh==null||(hh<1)||(hh>24)){return 0;}

                       i_val+=hh.length;hh--;}

               else if (token=="mm"||token=="m") {

                       mm=_getInt(val,i_val,token.length,2);

                       if(mm==null||(mm<0)||(mm>59)){return 0;}

                       i_val+=mm.length;}

               else if (token=="ss"||token=="s") {

                       ss=_getInt(val,i_val,token.length,2);

                       if(ss==null||(ss<0)||(ss>59)){return 0;}

                       i_val+=ss.length;}

               else if (token=="a") {

                       if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}

                       else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}

                       else {return 0;}

                       i_val+=2;}

               else {

                       if (val.substring(i_val,i_val+token.length)!=token) {return 0;}

                       else {i_val+=token.length;}

                       }

               }

        // If there are any trailing characters left in the value, it doesn't match

        if (i_val != val.length) { return 0; }

        // Is date valid for month?

        if (month==2) {

               // Check for leap year

               if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year

                       if (date > 29){ return 0; }

                       }

               else { if (date > 28) { return 0; } }

               }

        if ((month==4)||(month==6)||(month==9)||(month==11)) {

               if (date > 30) { return 0; }

               }

        // Correct hours value

        if (hh<12 && ampm=="PM") { hh=hh-0+12; }

        else if (hh>11 && ampm=="AM") { hh-=12; }

        var newdate=new Date(year,month-1,date,hh,mm,ss);

        return newdate.getTime();

        }

function calcDays(source, arguments)
    {
        //Start Date
        var monthYearDept =document.getElementById(contentPlaceHolderValue + 'cmbDeptMon').value; //"022007"; 
        var monthDept = monthYearDept.substr(0,2);
        var yearDept = monthYearDept.substr(2,4);
        var dayDept = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').value,10); 

        //End Date 
        var monthYearRet = document.getElementById(contentPlaceHolderValue + 'cmbRetMon').value; //"022007";
        var monthRet = monthYearRet.substr(0,2);
        var yearRet = monthYearRet.substr(2,4);
        var dayRet = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbRetDay').value,10);
        
        var sDate = new Date(yearDept+"/"+monthDept+"/"+dayDept);
        var eDate = new Date(yearRet+"/"+monthRet+"/"+dayRet);

        var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
        var isValidReturnDate = false;

        if(daysApart < 7)
        {
            var retNotValidBef = document.getElementById(contentPlaceHolderValue + 'ReturnNotValid').value;
            
            if(retNotValidBef != null && retNotValidBef != "")
            {
                for(var i = 0 ; i < daysApart ; i++)
                {
                    var strDate = dayDept+ " " + monthDept +" " + yearDept;
                    var fromatsDate = formatDate(new Date(getDateFromFormat(strDate,"d MM y")),"dd/MM/y")
                    dayDept++;
                    var finalDate = formatDate(new Date(getDateFromFormat(fromatsDate,"dd/MM/y")),"dd MMM yyyy")
                    var retDay = getTheDay(finalDate);
                    if(retNotValidBef == retDay)
                    {
                        isValidReturnDate = true;
                        break;
                    }
                }            
                if(isValidReturnDate == false)
                {
                strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_579_RETNOTVAILDBEFORE").value;
                strErrMsg = strErrMsg.replace("{Arg1}",retNotValidBef);           
                document.getElementById(contentPlaceHolderValue + "custReturnNotValid").errormessage = strErrMsg;            
                arguments.IsValid = false;
                }
            }
        } 
    }
    
    //added by amit t
function getTheDay(strDate)

    {
        myDays=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"];
        myDate=new Date(eval('"'+ strDate+'"'));

        var retDay = myDays[myDate.getDay()];
        return retDay;
    }



    var MONTH_NAMES=new Array('January','February','March','April','May','June','July','August','September','October','November','December','Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec');
    var DAY_NAMES=new Array('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sun','Mon','Tue','Wed','Thu','Fri','Sat');
    function LZ(x) {return(x<0||x>9?"":"0")+x}

    function isDate(val,format) 
    {
        var date=getDateFromFormat(val,format);
        if (date==0) { return false; }
        return true;
    }

    function formatDate(date,format) 
    {
        format=format+"";
        var result="";
        var i_format=0;
        var c="";
        var token="";
        var y=date.getYear()+"";
        var M=date.getMonth()+1;
        var d=date.getDate();
        var E=date.getDay();
        var H=date.getHours();
        var m=date.getMinutes();
        var s=date.getSeconds();
        var yyyy,yy,MMM,MM,dd,hh,h,mm,ss,ampm,HH,H,KK,K,kk,k;
        // Convert real date parts into formatted versions
        var value=new Object();

        if (y.length < 4) {y=""+(y-0+1900);}
        value["y"]=""+y;
        value["yyyy"]=y;
        value["yy"]=y.substring(2,4);
        value["M"]=M;
        value["MM"]=LZ(M);
        value["MMM"]=MONTH_NAMES[M-1];
        value["NNN"]=MONTH_NAMES[M+11];
        value["d"]=d;
        value["dd"]=LZ(d);
        value["E"]=DAY_NAMES[E+7];
        value["EE"]=DAY_NAMES[E];
        value["H"]=H;
        value["HH"]=LZ(H);
        if (H==0){value["h"]=12;}
        else if (H>12){value["h"]=H-12;}
        else {value["h"]=H;}
        value["hh"]=LZ(value["h"]);
        if (H>11){value["K"]=H-12;} else {value["K"]=H;}
        value["k"]=H+1;
        value["KK"]=LZ(value["K"]);
        value["kk"]=LZ(value["k"]);
        if (H > 11) { value["a"]="PM"; }
        else { value["a"]="AM"; }
        value["m"]=m;
        value["mm"]=LZ(m);
        value["s"]=s;
        value["ss"]=LZ(s);
        while (i_format < format.length) {
               c=format.charAt(i_format);
               token="";
               while ((format.charAt(i_format)==c) && (i_format < format.length)) {
                       token += format.charAt(i_format++);
                       }
               if (value[token] != null) { result=result + value[token]; }
               else { result=result + token; }
               }
        return result;
    }

    function _isInteger(val) 
    {
            var digits="1234567890";
            for (var i=0; i < val.length; i++) 
            {
               if (digits.indexOf(val.charAt(i))==-1)
                { 
                return false; 
                }
            }
            return true;
    }
    
    function _getInt(str,i,minlength,maxlength) 
    {
            for (var x=maxlength; x>=minlength; x--) 
            {
                   var token=str.substring(i,i+x);
                   if (token.length < minlength) { return null; }
                   if (_isInteger(token)) { return token; }
            }
            return null;
    }

 

    function getDateFromFormat(val,format) 
{

        val=val+"";

        format=format+"";

        var i_val=0;

        var i_format=0;

        var c="";

        var token="";

        var token2="";

        var x,y;

        var now=new Date();

        var year=now.getYear();

        var month=now.getMonth()+1;

        var date=1;

        var hh=now.getHours();

        var mm=now.getMinutes();

        var ss=now.getSeconds();

        var ampm="";

        

        while (i_format < format.length) {

               // Get next token from format string

               c=format.charAt(i_format);

               token="";

               while ((format.charAt(i_format)==c) && (i_format < format.length)) {

                       token += format.charAt(i_format++);

                       }

               // Extract contents of value based on format token

               if (token=="yyyy" || token=="yy" || token=="y") {

                       if (token=="yyyy") { x=4;y=4; }

                       if (token=="yy")   { x=2;y=2; }

                       if (token=="y")    { x=2;y=4; }

                       year=_getInt(val,i_val,x,y);

                       if (year==null) { return 0; }

                       i_val += year.length;

                       if (year.length==2) {

                               if (year > 70) { year=1900+(year-0); }

                               else { year=2000+(year-0); }

                               }

                       }

               else if (token=="MMM"||token=="NNN"){

                       month=0;

                       for (var i=0; i<MONTH_NAMES.length; i++) {

                               var month_name=MONTH_NAMES[i];

                               if (val.substring(i_val,i_val+month_name.length).toLowerCase()==month_name.toLowerCase()) {

                                      if (token=="MMM"||(token=="NNN"&&i>11)) {

                                              month=i+1;

                                              if (month>12) { month -= 12; }

                                              i_val += month_name.length;

                                              break;

                                              }

                                      }

                               }

                       if ((month < 1)||(month>12)){return 0;}

                       }

               else if (token=="EE"||token=="E"){

                       for (var i=0; i<DAY_NAMES.length; i++) {

                               var day_name=DAY_NAMES[i];

                               if (val.substring(i_val,i_val+day_name.length).toLowerCase()==day_name.toLowerCase()) {

                                      i_val += day_name.length;

                                      break;

                                      }

                               }

                       }

               else if (token=="MM"||token=="M") {

                       month=_getInt(val,i_val,token.length,2);

                       if(month==null||(month<1)||(month>12)){return 0;}

                       i_val+=month.length;}

               else if (token=="dd"||token=="d") {

                       date=_getInt(val,i_val,token.length,2);

                       if(date==null||(date<1)||(date>31)){return 0;}

                       i_val+=date.length;}

               else if (token=="hh"||token=="h") {

                       hh=_getInt(val,i_val,token.length,2);

                       if(hh==null||(hh<1)||(hh>12)){return 0;}

                       i_val+=hh.length;}

               else if (token=="HH"||token=="H") {

                       hh=_getInt(val,i_val,token.length,2);

                       if(hh==null||(hh<0)||(hh>23)){return 0;}

                       i_val+=hh.length;}

               else if (token=="KK"||token=="K") {

                       hh=_getInt(val,i_val,token.length,2);

                       if(hh==null||(hh<0)||(hh>11)){return 0;}

                       i_val+=hh.length;}

               else if (token=="kk"||token=="k") {

                       hh=_getInt(val,i_val,token.length,2);

                       if(hh==null||(hh<1)||(hh>24)){return 0;}

                       i_val+=hh.length;hh--;}

               else if (token=="mm"||token=="m") {

                       mm=_getInt(val,i_val,token.length,2);

                       if(mm==null||(mm<0)||(mm>59)){return 0;}

                       i_val+=mm.length;}

               else if (token=="ss"||token=="s") {

                       ss=_getInt(val,i_val,token.length,2);

                       if(ss==null||(ss<0)||(ss>59)){return 0;}

                       i_val+=ss.length;}

               else if (token=="a") {

                       if (val.substring(i_val,i_val+2).toLowerCase()=="am") {ampm="AM";}

                       else if (val.substring(i_val,i_val+2).toLowerCase()=="pm") {ampm="PM";}

                       else {return 0;}

                       i_val+=2;}

               else {

                       if (val.substring(i_val,i_val+token.length)!=token) {return 0;}

                       else {i_val+=token.length;}

                       }

               }

        // If there are any trailing characters left in the value, it doesn't match

        if (i_val != val.length) { return 0; }

        // Is date valid for month?

        if (month==2) {

               // Check for leap year

               if ( ( (year%4==0)&&(year%100 != 0) ) || (year%400==0) ) { // leap year

                       if (date > 29){ return 0; }

                       }

               else { if (date > 28) { return 0; } }

               }

        if ((month==4)||(month==6)||(month==9)||(month==11)) {

               if (date > 30) { return 0; }

               }

        // Correct hours value

        if (hh<12 && ampm=="PM") { hh=hh-0+12; }

        else if (hh>11 && ampm=="AM") { hh-=12; }

        var newdate=new Date(year,month-1,date,hh,mm,ss);

        return newdate.getTime();

        }

    function calcDays(source, arguments)
    {
        //Start Date
        var monthYearDept =document.getElementById(contentPlaceHolderValue + 'cmbDeptMon').value; //"022007"; 
        var monthDept = monthYearDept.substr(0,2);
        var yearDept = monthYearDept.substr(2,4);
        var dayDept = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbDeptDay').value,10); 

        //End Date 
        var monthYearRet = document.getElementById(contentPlaceHolderValue + 'cmbRetMon').value; //"022007";
        var monthRet = monthYearRet.substr(0,2);
        var yearRet = monthYearRet.substr(2,4);
        var dayRet = parseInt(document.getElementById(contentPlaceHolderValue + 'cmbRetDay').value,10);
	    var returnDate = dayRet+ " " + monthRet +" " + yearRet;
        var returnDateInTime = formatDate(new Date(getDateFromFormat(returnDate,"d M y")),"dd/MM/y");
        
        var sDate = new Date(yearDept+"/"+monthDept+"/"+dayDept);
        var eDate = new Date(yearRet+"/"+monthRet+"/"+dayRet);

        var daysApart = Math.abs(Math.round((sDate-eDate)/86400000));
        var isValidReturnDate = false;
        var tempCounter = 0;
      
        if(daysApart <= 8)
        {
            var retNotValidBef = document.getElementById(contentPlaceHolderValue + 'ReturnNotValid').value;
            
            if(retNotValidBef != null && retNotValidBef != "")
            {
                var tempstrDate = dayDept+ " " + monthDept +" " + yearDept;
                var tempfromatsDate = formatDate(new Date(getDateFromFormat(tempstrDate,"d MM y")),"dd/MM/y")
                var tempfinalDate = formatDate(new Date(getDateFromFormat(tempfromatsDate,"dd/MM/y")),"dd MMM yyyy")
                var tempretDay = getTheDay(tempfinalDate);

                monthDept = monthDept-1;
                
                if(tempretDay == retNotValidBef)
                {
                    var d2 = new Date(yearDept,monthDept,dayDept);
                    var tempDay =  d2.getDate();
                    tempDay = tempDay + 1;
                    var d3 = new Date()
                    d2.setDate(tempDay);
                    dayDept = d2.getDate();
                    dayDept =((dayDept < 10) ? '0' + dayDept : dayDept); 
                    monthDept= d2.getMonth();
                    yearDept=d2.getFullYear();
                }
                
                for(var i = 0 ; i < daysApart ; i++)
                {
                    var strDate = dayDept+ " " + (monthDept + 1) +" " + yearDept;   
                    var fromatsDate = formatDate(new Date(getDateFromFormat(strDate,"d M y")),"dd/MM/y")
                    
                    var d = new Date(yearDept,monthDept,dayDept);
                    var tempDay =  d.getDate();
                    tempDay = tempDay + 1;
                    
                    var d1 = new Date()
                    d.setDate(tempDay);
                    dayDept = d.getDate(); 
                    dayDept =((dayDept < 10) ? '0' + dayDept : dayDept); 
                    monthDept= d.getMonth();
                    yearDept=d.getFullYear(); 
                    
                    var finalDate = formatDate(new Date(getDateFromFormat(fromatsDate,"dd/MM/y")),"dd MMM yyyy")
                    var retDay = getTheDay(finalDate);
                     
                    if(retNotValidBef == retDay)
                    {
			if(Date.parse(returnDateInTime) > Date.parse(fromatsDate))
                        {
                        	isValidReturnDate = true;
                        	break;
			}
                    }
                }            
                if(isValidReturnDate == false)
                {
                strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_579_RETNOTVAILDBEFORE").value;
                strErrMsg = strErrMsg.replace("{Arg1}",retNotValidBef);           
                document.getElementById(contentPlaceHolderValue + "custReturnNotValid").errormessage = strErrMsg;            
                arguments.IsValid = false;
                }
            }
        } 
    }
    
    
    
     //added by kunal on 3 June 2007 for Infant CR
    
    /******************************************************************************
    *Function Name   :ValidateInfantAssociation
    *Input Parameters:source,arguments 
    *Description     :validates if no of infants is less thanor equal to no of adults
    *Return Parameter:none
    ******************************************************************************/
    function ValidateInfantAssociation(source, arguments)
    {
        var noOfAdult = document.getElementById(contentPlaceHolderValue + 'cmbAdult').value;
        var noOfInfant = document.getElementById(contentPlaceHolderValue + 'cmbInfant').value;
        if(parseInt(noOfInfant) > parseInt(noOfAdult))
        {
            strErrMsg=document.getElementById(contentPlaceHolderValue + "OBE_580_INVALIDINFANTS").value;
            document.getElementById(contentPlaceHolderValue + "custValInfantAssociation").errormessage = strErrMsg;
            arguments.IsValid = false;
        }
    }
    
    //end by kunal on 3 June 2007
