function DateRangeFromSubmit(F)
{
    var v=F.elements.DateInterval.value
   
    var k=true;
    
    if (v=='All')
    {
        F.elements.ShowAll.value=1;
        F.elements.MinDate.value='';
        F.elements.MaxDate.value='';
        return true
    }
    
    var MinDate = F.elements.MinDate.value;
    var MaxDate = F.elements.MaxDate.value;

    if (MinDate != '')
    {
       k=isDateValid(MinDate)
    }
    
    if (k==true&&MaxDate != '')
    {
        k=isDateValid(MaxDate)
    }
    
    if (!k)
    {
        alert('Invalid date');
    }
    else if (MaxDate<MinDate)
    {
        k=false;
        alert('Invalid date interval');
        
    }
    else
    {
        F.elements.ShowAll.value='';
    }
    
    return k;


    function isDateValid(strdt) {
        var y;
        var m;
        var d;
        var r;
        
        y=strdt.substr(0,4)
        m=strdt.substr(5,2)
        d=strdt.substr(8,2)
        if (m.substr(0,1)=='0') m=m.substr(1,1)
        if (d.substr(0,1)=='0') d=d.substr(1,1)
        y=parseInt(y)
        m=parseInt(m)
        d=parseInt(d)
        if (!isNaN(y)&&!isNaN(m)&&!isNaN(d))
        {
            var dt =new Date(y,m-1,d);
            if (dt.getFullYear()!=y)
            {
                r=false;
            }
            else if(dt.getMonth()!=m-1)
            {
                r=false
            }
            else if (dt.getDate()!=d)
            {
                r=false;
            }
            else
            {
                r=true;
            }
        }
        else
        {
            r=false
        }
        return r;
    }

}

function DateRangeFromIntervalChange(F)
{
    var v=F.elements.DateInterval.value
   
    if (v=='')
    {
        return
    }    

    if (v=='All')
    {
        F.elements.ShowAll.value=1;
        F.elements.MinDate.value='';
        F.elements.MaxDate.value='';
        return
    }
    
    var dt=new Date();
    
    var MinDate = '';
    var MaxDate = '';
    
    
    switch(v)
    {
        case 'ToDay':
            
            MinDate = date2str(dt);
            MaxDate = date2str(dt);
            
            break;
        case 'Yesterday':
            
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-1));
            MaxDate = MinDate;

            break;
        case 'Last7Days':
            
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-7));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-1));
            
            break;
        case 'Last14Days':
            
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-14));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-1));
            
            break;
        case 'Last28Days':
            
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-28));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-1));
            
            break;
        case 'ThisWeek':
        
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - (dt.getDay()+6) % 7 ));
            MaxDate = date2str(dt);
        
            break;
        case 'LastWeek':

            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 6 - (dt.getDay()+7) % 7 ));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 0 - (dt.getDay()+7) % 7 ));
        
            break;
        case 'Last2Weeks':
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 13 - (dt.getDay()+7) % 7 ));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 7 - (dt.getDay()+7) % 7 ));

            break;
        case 'Last4Weeks':
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 27 - (dt.getDay()+7) % 7 ));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 7 - (dt.getDay()+7) % 7 ));

            break;
        case 'Last6Weeks':
            
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 41 - (dt.getDay()+7) % 7 ));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 7 - (dt.getDay()+7) % 7 ));

            break;
        case 'Last12Weeks':
        
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 83 - (dt.getDay()+7) % 7 ));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate() - 7 - (dt.getDay()+7) % 7 ));

            break;
            
        
        case 'ThisMonth':
        
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),1));
            MaxDate = date2str(dt);
            
            break;
        case 'LastMonth':
        
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth()-1,1));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),0));
        
            break;
        case 'Last2Months':
            
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth()-2,1));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),0));
        
            break;
        case 'Last4Months':

            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth()-4,1));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),0));
        
            break;
        case 'Last6Months':
        
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth()-6,1));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),0));
        
            break;
        case 'Last12Months':
        
            MinDate = date2str(new Date(dt.getFullYear(),dt.getMonth()-12,1));
            MaxDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),0));
        
            break;
            
        default:
            alert('Unknown value ' + v);
            break  ;  
    }
    
    F.elements.MinDate.value=MinDate;
    F.elements.MaxDate.value=MaxDate;
    
    return;
    
    function date2str(objDate){
        var r='';
        if (objDate)
        {
            var y=objDate.getFullYear();
            var m=objDate.getMonth() + 1;
            if (m<10) m='0' + m
            var d=objDate.getDate();
            if (d<10) d='0' + d

            r= y + '-' + m + '-' + d;
        }
        return r;
    }
 
}

function DaySelectChange(F)
{
    var v=F.elements.DaySelect.value
    if (v=='')
    {
        return
    }  
    
    var dt=new Date();
    
    var cDate = '';
    
    
    switch(v)
    {
        case 'ToDay':
            cDate = date2str(dt);
            break;
        case 'Yesterday':
            cDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-1));
            break;
        case '2DaysAgo':
            cDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-2));
            break;
        case '3DaysAgo':
            cDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-3));
            break;
        case '4DaysAgo':
            cDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-4));
            break;
        case '5DaysAgo':
            cDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-5));
            break;
        case '6DaysAgo':
            cDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-6));
            break;
        case '7DaysAgo':
            cDate = date2str(new Date(dt.getFullYear(),dt.getMonth(),dt.getDate()-7));
            break;
        default:
            alert('Unknown value ' + v);
            break  ;  
    }



    F.elements.Date.value=cDate;
   
    return;
    
    function date2str(objDate){
        var r='';
        if (objDate)
        {
            var y=objDate.getFullYear();
            var m=objDate.getMonth() + 1;
            if (m<10) m='0' + m
            var d=objDate.getDate();
            if (d<10) d='0' + d

            r= y + '-' + m + '-' + d;
        }
        return r;
    }    
}