﻿



/******************************************
Date input styles
*******************************************/
var _DayDisabledText = '';  // Translate variables for localize    

function getTodayStyle( oDay) {
    oDay.element.style.backgroundColor = '#26468E';
    oDay.element.style.color = 'White';
    return oDay;
}
function getWeekendStyle( oDay , foreColor) {
    oDay.element.disabled = false;
    //	oDay.element.style.cursor = 'hand';			// not possible in IE 5.5 and IE 5.0
    oDay.element.style.color = foreColor;
    oDay.element.style.backgroundColor = '#afe7fe';
    oDay.element.title = '';
    return oDay;
}
function getSelectedStyle( oDay) {
    oDay.element.style.backgroundColor = '#B8261B';
    oDay.element.style.color = 'White';
    return oDay;
}

function getDayDisabled( oDay) {
    oDay.element.disabled = true;
    //	oDay.element.style.cursor = 'not-allowed';	// not possible in IE 5.5 and IE 5.0
    oDay.element.style.color = '#808080';
    oDay.element.style.backgroundColor = '#FFFFFF'; // '#D5D5D5';
    oDay.element.title = _DayDisabledText;
    return oDay;
}

function getDayEnabled( oDay ) {
    oDay.element.disabled = false;
    //	oDay.element.style.cursor = 'hand';			// not possible in IE 5.5 and IE 5.0
    oDay.element.style.color = '#133976';
    oDay.element.style.backgroundColor = '#FFFFFF';
    oDay.element.title = '';
    return oDay;
}

function IgDate() {
    this.year;
    this.month;
    this.day;
    this.element;
}
function CreateIgDate( dt) { 
    var o = new IgDate(); 
    o.year = dt.getFullYear(); 
    o.month = dt.getMonth() +1; 
    o.day = dt.getDate(); 
    o.element = document.createElement('a');  // dummy elmt...
    return o; 
} 

/******************************************
Functions to repopulate the calendar and the months depending on selected route
*******************************************/

function RerenderCalendarAndMonth(ctCalendarID, cbRouteID, cbMonthID, LaterText)
{
     var cbRoute = document.getElementById(cbRouteID);
     if(cbRoute) {
        var RouteID = cbRoute.value
        var lastDepartureDate = GetLastDepartureDate(RouteID);

        if (lastDepartureDate) {
            var maxYear = lastDepartureDate.split('-')[0];
            var maxMonth = lastDepartureDate.split('-')[1];
            var maxDay = lastDepartureDate.split('-')[2];

            SetMaxDateOnCalendar(ctCalendarID, maxYear, maxMonth, maxDay);
            RerenderMonthCombo(cbMonthID, maxYear, maxMonth, LaterText);
        }
     }
}

function GetNewDate(year, month, day){
    var newDate = new Date();
    newDate.setYear(year);
    newDate.setMonth(month);
    newDate.setDate(day);

    return newDate;
}

function SetMaxDateOnCalendar(ctCalendarID, maxYear, maxMonth, maxDay){
    maxMonth -= 1;
    var lastDate = GetNewDate(maxYear, maxMonth, maxDay);
    var ctCalendar = igdrp_getComboById(ctCalendarID);  
     if (ctCalendar) {
          ctCalendar.setMaxDate(lastDate); 
       }
}

function GetMonthsToRender(maxYear, maxMonth){
    var currentYear = GetCurrentYear();
    var currentMonth = GetCurrentMonth();
    var monthsInAYear = new Number(12);
    var mYear = new Number(maxYear);
    var mMonth = new Number(maxMonth);
    
    var monthsToRender = mYear - currentYear;
    monthsToRender *= monthsInAYear;
    monthsToRender += mMonth; 
    monthsToRender -= currentMonth;
    monthsToRender += 1;     
        
    return monthsToRender;
}

function GetCurrentMonth() {
    var currentDate = new Date();
    var currentMonth = currentDate.getMonth();
    currentMonth +=1;
    
    return currentMonth;
}

function GetCurrentYear() {
    var currentDate = new Date();
    var currentYear = currentDate.getFullYear();    
    
    return currentYear;
}

function RerenderMonthCombo(cbMonthID, maxYear, maxMonth, LaterText) {

    var monthsToRender = GetMonthsToRender(maxYear, maxMonth)
    var yearToSet = GetCurrentYear();
    var monthToSet = GetCurrentMonth();
    var monthsInAYear = new Number(12);
    var cbMonth = document.getElementById(cbMonthID);

    if (cbMonth) {
        var selectedValue = cbMonth.value;
        cbMonth.options.length = monthsToRender;
        if (GetLaterDateScript().toString() == "true") {
            cbMonth.options.length += 1;
        }
        for (i=0 ; i<monthsToRender; i++)
        {
            if (monthToSet > monthsInAYear)
            {
                monthToSet -= monthsInAYear
                yearToSet += 1
            }

            var key = yearToSet + '|' + monthToSet
            cbMonth.options[i].text = GetMonthName(monthToSet) + ' ' + yearToSet;
            cbMonth.options[i].value = key;
            if (selectedValue == key)
            {
                cbMonth.selectedIndex = i
            }
            monthToSet +=1;
        }

        if (GetLaterDateScript().toString() == "true")
            {
                cbMonth.options[i].text = LaterText;
                cbMonth.options[i].value = "Later|Later";
            }
    }
}

function GetMaxDateOnCalendar(ctCalendarID){
    var ctCalendar = igdrp_getComboById(ctCalendarID);  
     if (ctCalendar) {
          return ctCalendar.getMaxDate(); 
       }
}

function SelectedDateHasPassedMaxDateOnCalender(ctCalendarID, selectedDate){
    var maxDate = GetMaxDateOnCalendar(ctCalendarID);
    if (maxDate && selectedDate){
        var maxDateMonth = maxDate.getMonth() + 1;
	    var selectedMonth = selectedDate.month;
        if ((selectedDate.year  > maxDate.getFullYear()) 
            || (selectedDate.year == maxDate.getFullYear() && selectedMonth > maxDateMonth)
            || (selectedDate.year == maxDate.getFullYear() && selectedMonth == maxDateMonth && selectedDate.day > maxDate.getDate())) 
	    {
            return true;   
        }
        else
        {
            return false;
        }
    }
    else
    {
        return false;
    }
}

