﻿var Filter = new Class({
    
    initialize: function(selID, filter)
    {        
        var classRef = this;
        this.selTime = $(selID);
        this.filter = filter;
        
        this.selTime.addEvent('change', function(e){
	        e = new Event(e);
            document.location.href = classRef.getUrl();
	        e.stop();	        
        });
    },
    
    getFilterFromUrl: function()
    {
        var urlPart="", index = -1, splittedURL, length;

        url = document.location.href;
        if (url!=null && url!='undefined' && url!="")
        {
            index = url.trim().toLowerCase().indexOf("filter");   
        }

        if (index != -1)
        {
            urlPart = "Filter";
            length = url.length;
            splittedURL = url.substring(index, length).split('/');
        }

        if (splittedURL != null && url!='undefined')
        {
            for (var i = 1; i < splittedURL.length && i < 3; i++)
            {
                urlPart += "/" + splittedURL[i];
            }
        }

        return urlPart;
    },
    
    getFilterForUrl: function()
    {
        var urlFilter="";
        urlFilter = "Filter/" + this.filter + "/" + this.getTimeUrlWithCase();
        return urlFilter;
    },
    
    getUrl: function()
    {
        var filterForReplace = "", newFilter, url;
        url = document.location.href;
        filterForReplace = this.getFilterFromUrl();
        newFilter = this.getFilterForUrl();
        if (filterForReplace!="")
        {
            url = url.replace(this.getFilterFromUrl(), newFilter);
        }    
        else
        {
            if (url.indexOf('/') == (url.length - 1))
            {
                url += newFilter;
            }
            else
            {
                url += "/" + newFilter;
            }
        }
        return url;        
    },
    
    getTimeUrlWithCase: function ()
    {
        var urlWithCase = this.selTime.value;
        switch (this.selTime.value)
        {
            case "today":
                urlWithCase = "Today";
                break;
            case "thisweek":
                urlWithCase = "ThisWeek";
                break;
            case "thismonth":
                urlWithCase = "ThisMonth";
                break;
            case "ever":
                urlWithCase = "Ever";
                break;
            default:
                urlWithCase = this.selTime.value;
                break;                
        }
        return urlWithCase;
    }
});

