// *******************************
// START DATE INPUT
// *******************************
function StartDayChange()
{
    var inputStartDay = document.getElementById("ctl00$PageBody$textStartDay");
    var inputStartMonth = document.getElementById("ctl00$PageBody$textStartMonth");
    
    if(!IsInt(inputStartDay.value))
    {
        inputStartDay.value = "01";
        inputStartMonth.focus();
        return false;
    }

    var year = parseInt(document.getElementById("ctl00$PageBody$dropDownStartYear").value);
    var month = parseInt(document.getElementById("ctl00$PageBody$textStartMonth").value);
    var maxDays = GetMaxDays(month, year);
        
    if((parseInt(inputStartDay.value) > 0) && (parseInt(inputStartDay.value) <= 3))
        return false;
    
    if(parseInt(inputStartDay.value) > maxDays)
        inputStartDay.value = maxDays;
        
    inputStartMonth.focus();
    inputStartMonth.select();
}

function StartMonthChange()
{
    var inputStartDay = document.getElementById("ctl00$PageBody$textStartDay");
    var inputStartMonth = document.getElementById("ctl00$PageBody$textStartMonth");
    
    if(!IsInt(inputStartMonth.value))
    {
        inputStartMonth.value = "01";
        return false;
    }
    
    if(inputStartMonth.value.length > 1)
    {
        if(parseInt(inputStartMonth.value) > 12)
        {
            inputStartMonth.value = "12";
            return false;
        }
        else
        {
            var year = parseInt(document.getElementById("ctl00$PageBody$dropDownStartYear").value);
            var month = parseInt(inputStartMonth.value);
            var maxDays = GetMaxDays(month, year);
            
            if(parseInt(inputStartDay.value) > maxDays)
                inputStartDay.value = maxDays;
        }
    }
    else
    {
        var year = parseInt(document.getElementById("ctl00$PageBody$dropDownStartYear").value);
        var month = parseInt(inputStartMonth.value);
        var maxDays = GetMaxDays(month, year);
            
        if(parseInt(inputStartDay.value) > maxDays)
            inputStartDay.value = maxDays;
    }
}

function StartYearChange()
{
    var inputStartDay = document.getElementById("ctl00$PageBody$textStartDay");
    var year = parseInt(document.getElementById("ctl00$PageBody$dropDownStartYear").value);
    var month = parseInt(document.getElementById("ctl00$PageBody$textStartMonth").value);
    var maxDays = GetMaxDays(month, year);
    
    if(parseInt(inputStartDay.value) > maxDays)
        inputStartDay.value = maxDays;
}








// *******************************
// GENERICS
// *******************************
function GetMaxDays(month, year)
{
    var maxDays = 31;
    
    switch (month)
    {
        case 2:
            if(IsBisestile(year))
                maxDays = 29;
            else
                maxDays = 28;
            break;
        
        case 4: 
            maxDays = 30;
            break; 

        case 6: 
            maxDays = 30;
            break; 

        case 9: 
            maxDays = 30; 
            break;
        
        case 11: 
            maxDays = 30; 
            break; 
    }
    
    return maxDays;
}

function IsBisestile(year)
{
    if ((year % 4) == 0)
        return true;

    return false;
}

function DigitsOnly(e)
{
   var KeyCode = (e.keyCode) ? e.keyCode : e.which;
   return ((KeyCode == 8) // backspace
        || (KeyCode == 9) // tab
        || (KeyCode == 37) // left arrow
        || (KeyCode == 39) // right arrow
        || (KeyCode == 46) // delete
        || ((KeyCode > 47) && (KeyCode < 58)) // 0 - 9
   );
}

function IsInt(x)
{ 
   var y = parseInt(x); 
   if (isNaN(y)) return false; 
   return (x == y) && (x.toString() == y.toString()); 
}











// *******************************
// END DATE INPUT
// *******************************

function EndDayChange()
{
    var inputEndDay = document.getElementById("ctl00$PageBody$textEndDay");
    var inputEndMonth = document.getElementById("ctl00$PageBody$textEndMonth");
    
    if(!IsInt(inputEndDay.value))
    {
        inputEndDay.value = "01";
        inputEndMonth.focus();
        return false;
    }

    var year = parseInt(document.getElementById("ctl00$PageBody$dropDownEndYear").value);
    var month = parseInt(document.getElementById("ctl00$PageBody$textEndMonth").value);
    var maxDays = GetMaxDays(month, year);
        
    if((parseInt(inputEndDay.value) > 0) && (parseInt(inputEndDay.value) <= 3))
        return false;
    
    if(parseInt(inputEndDay.value) > maxDays)
        inputEndDay.value = maxDays;
        
    inputEndMonth.focus();
    inputEndMonth.select();
}

function EndMonthChange()
{
    var inputEndDay = document.getElementById("ctl00$PageBody$textEndDay");
    var inputEndMonth = document.getElementById("ctl00$PageBody$textEndMonth");
    
    if(!IsInt(inputEndMonth.value))
    {
        inputEndMonth.value = "01";
        return false;
    }
    
    if(inputEndMonth.value.length > 1)
    {
        if(parseInt(inputEndMonth.value) > 12)
        {
            inputEndMonth.value = "12";
            return false;
        }
        else
        {
            var year = parseInt(document.getElementById("ctl00$PageBody$dropDownEndYear").value);
            var month = parseInt(inputEndMonth.value);
            var maxDays = GetMaxDays(month, year);
            
            if(parseInt(inputEndDay.value) > maxDays)
                inputEndDay.value = maxDays;
        }
    }
    else
    {
        var year = parseInt(document.getElementById("ctl00$PageBody$dropDownEndYear").value);
        var month = parseInt(inputEndMonth.value);
        var maxDays = GetMaxDays(month, year);
            
        if(parseInt(inputEndDay.value) > maxDays)
            inputEndDay.value = maxDays;
    }
}

function EndYearChange()
{
    var inputEndDay = document.getElementById("ctl00$PageBody$textEndDay");
    var year = parseInt(document.getElementById("ctl00$PageBody$dropDownEndYear").value);
    var month = parseInt(document.getElementById("ctl00$PageBody$textEndMonth").value);
    var maxDays = GetMaxDays(month, year);
    
    if(parseInt(inputEndDay.value) > maxDays)
        inputEndDay.value = maxDays;
}
