AtexDNA.data.Request = function() {
    return {
        params: {
            "criteria": [
                {
                    "dimension": "top_level_category",
                    "id": "1"
                },
                {
                    "dimension": "price",
                    "max": 400000,
                    "min": 0
                },
                {
                    "dimension": "location",
                    "exactDistance": 200,
                    "latitude": "37.775196",
                    "longitude": "-122.419204"
                },
                {
                    "dimension": "housing_bathrooms",
                    "value": ""
                },
                {
                    "dimension": "housing_bedrooms",
                    "value": ""
                },
                {   
                    "dimension": "housing_sale_type",
                    "ids": ""
                },
                {
                    "dimension": "description",
                    "value": ""
                }
            ],
            "page": 1
        },
        setKeywords: function(keywords) {
            this.params.criteria[6].value = keywords;
        },
        setPage: function(page) {
            this.params.page = parseInt(page);
        },
        setPriceMin: function(min) {
            this.params.criteria[1].min = parseInt(min);
        },
        setPriceMax: function(max) {
            this.params.criteria[1].max = parseInt(max);
        },
        setPriceRange: function(range) {
            this.setPriceMin(range[0]);
            this.setPriceMax(range[1]);
        },
        setCoordinates: function(coords) {
            this.params.criteria[2].latitude = coords[0];
            this.params.criteria[2].longitude = coords[1];
        },
        setDistance: function(distance) {
            this.params.criteria[2].exactDistance = parseInt(distance);
        },
        setBedrooms: function(bedrooms) {
            this.params.criteria[4].value = bedrooms;
        },
        setBathrooms: function(bathrooms) {
            this.params.criteria[3].value = bathrooms;
        },
        getString: function() {
            var reqString = "";
            for (var prop in this.params) {
                reqString += prop + '=' + this.params[prop] + '&';
            }
            return reqString;
        },
        set: function(params) {
            for (var prop in params) {
                this.params[prop] = params[prop];
            }
        },
        get: function() {
            return this.params;
        }
    }
}