﻿/**
 * @author aivlev
 */
dojo.require("dojo.data.util.filter");
var docTypes = ["Административный регламент", "Акт", "Информационное письмо", "Отраслевое соглашение", "Отчет", "Письмо", "Положение", "Постановление", "Приказ", "Проект", "Проект НПА", "Проект приказа", "Протокол", "Разъяснение", "Распоряжение", "Рекомендации", "Справка", "Стандарт", "Статистика", "Телеграмма", "Указ", "Федеральный закон"];


var selectionTypes = ["Основные направления", "Макроэкономика и развитие секторов экономики", "Стратегическое планирование", "ФЦП, ФАИП и ВЦП", "Малый бизнес", "Внешнеэкономическая деятельность", "Инвестиционная политика", "Особые экономические зоны", "Земельные отношения", "Административная реформа и развитие конкуренции", "Информационное общество", "Корпоративное управление и институты развития", "Регулирование госзакупок", "Инновации и энергоэффективность", "Естественные монополии и природопользование", "Госсобственность", "Экономика социальной сферы и развитие регионов", "Подготовка управленческих кадров"];
selectionTypes.sort();


function filterByCat(cat){
    if (cat == "") 
        return;
    dojo.query("#docs_all .element[filtered='1']").forEach(function(item){
        var cats = dojo.attr(dojo.query(".type", item)[0], "categories").split(",");
        if (isIn(cat, cats)) {
            dojo.attr(item, "filtered", "1");
        }
        else {
            dojo.attr(item, "filtered", "0");
        }
    })
}


function filterByDate(from, till, query){
    dojo.query(query).forEach(function(item){
    
        var dn = dojo.query(".date", item)[0];
        var date = dojo.attr(dn, "date");
        date = date.split(".");
        
        var d = new Date(date[2], date[1] - 1, date[0]);
        if ((from <= d) && (d <= till)) {
            dojo.attr(item, "filtered", "1")
        }
        else {
            dojo.attr(item, "filtered", "0")
        }
    })
}


function filterByNumber(query){
    dojo.query("#docs_all .element[filtered='1']").forEach(function(item){
    
        var q = dojo.data.util.filter.patternToRegExp("*" + query + "*");
        var str = dojo.query(".number", item).attr("innerHTML");
        
        for (var i = 0; i < str.length; i++) {
        
            if (str[i].match(q)) {
                dojo.attr(item, "filtered", "1");
            }
            else {
                dojo.attr(item, "filtered", "0");
            }
        }
        
    });
}


function filterByText(query){
    dojo.query("#docs_all .element[filtered='1']").forEach(function(item){
    
        var q = dojo.data.util.filter.patternToRegExp("*" + query + "*", true);
        
        
        var str = dojo.query(".title", item).attr("innerHTML");
        
        
        for (var i = 0; i < str.length; i++) {
        
            if (str[i].match(q)) {
                dojo.attr(item, "filtered", "1");
            }
            else {
                dojo.attr(item, "filtered", "0");
            }
        }
        
    });
}



function filterIt(){
    loader_show();
    var from = new Date(dojo.byId("year").value, dojo.byId("month").value, dojo.byId("day").value);
    var till = new Date(dojo.byId("year2").value, dojo.byId("month2").value, dojo.byId("day2").value);
    var query = "#docs_all .element";
    filterByDate(from, till, query);
    filterByCat(dojo.byId("docTypes").value);
    filterByCat(dojo.byId("selTypes").value);
    filterByNumber(dojo.byId("docNumber").value);
    
    filterByText(dojo.byId("fulltext").value);
    
    dijit.byId("docs_all").reset()
    loader_hide();
}

asItDone.addCallback(function(){


    var curDate = new Date();
    var d = curDate.getDate();
    var m = curDate.getMonth();
    if (dojo.isIE) {
        var y = curDate.getYear()
    }
    else {
        var y = 1900 + curDate.getYear()
    }
    
    
    var dates = dojo.query(".element .date").attr("date");
    if (dates.length > 0) {
        var ll = (dojo.isIE) ? (dates.length - 2) : (dates.length - 1);
        var t = dates[ll].split(".");
    }
    else {
        t = [];
        t[2] = 2000;
    }
    
    dojo.byId("day2").value = d;
    dojo.byId("month2").value = m;
    dojo.byId("year2").value = y;
    
    dojo.byId("day").value = t[0];
    dojo.byId("month").value = t[1] - 1;
    dojo.byId("year").value = t[2];
    var selTypes = dojo.byId("docTypes");
    
    for (var i = 0; i < docTypes.length; i++) {
        dojo.place("<option value='" + docTypes[i] + "'>" + docTypes[i] + "</option>", selTypes);
    }
    
    var selTypes = dojo.byId("selTypes");
    
    for (var i = 0; i < selectionTypes.length; i++) {
        dojo.place("<option value='" + selectionTypes[i] + "'>" + selectionTypes[i] + "</option>", selTypes);
    }
    
    
})
