function filters(jqObj){
//>----------------------------------------------------------------------------------------------------------
	this.version = "4";
	this.build = "d.04";
	this.author = "m1z0";
	this.jq = jqObj;
    this.issue_id = null;
    this.LoadFromTPL = null;
    //this.start_date = null;
    this.form_date_start = "";
	this.form_date_end = "";
	this.form_count_people = "";
	this.form_dur_start = "";
	this.form_dur_end = "";
    var self = this;
//>----------------------------------------------------------------------------------------------------------
    this.MTLoad = function(issue_id, fromTPL){
        this.issue_id = issue_id;
		this.LoadFromTPL = (fromTPL == true)?true:false;
        if(this.issue_id == null){
			this.ThrowErr("article number is not specified");
		}
        this.mt_status("Инициализиация фильтра");
        //defaultURL: "/?_module=filters&_action=getap"
        //var uri = "/mastertour/filters.php?action=init";
        var uri = "/?_module=filters&_action=init";
        this.jq.ajax({
			type: "GET",
			url: uri,
			data: "id=" + this.issue_id,
			cache: false,
			success: self.PostLoad
		});
        // ???
        //if(this.LoadFromTPL == true){
		//	this.MTLoad(this.issue_id, false);
		//}
    }
//>----------------------------------------------------------------------------------------------------------
    this.PostLoad = function(objs){
    	var obj = new String(objs);
        var form_encoded = new String();
        if(obj.length > 0){
            self.mt_status("Предварительная загрузка");
            this.tableDate = self.jq.json.decode(obj);
            //Decoded data
            var form = {
				"date": {
					"start": (self.form_date_start?self.form_date_start:this.tableDate.date_start),
					"end": (self.form_date_end?self.form_date_end:this.tableDate.date_end)
						},
				"duration": {
					"start": (self.form_dur_start?self.form_dur_start:null),
					"end": (self.form_dur_end?self.form_dur_end:null)
						},
				"countp": (self.form_count_people?self.form_count_people:null)
			};
            //Encoded data
            form_encoded = self.jq.json.encode(form);
			var parseUrl = new String(window.location);
			var parseUrlArr = parseUrl.split("/");
			var tour = parseUrlArr[3];
			//tour == 'tury-putevki-otdykh-lechenie' - realy
			// || tour == 'mastertour' - debug
            if(tour == 'tury-putevki-otdykh-lechenie'){
                self.mt_status("Предварительная загрузка параметров фильтра");
                var dateS = (self.form_date_start.length > 0)?self.form_date_start:(this.tableDate.date_start.length > 0)?this.tableDate.date_start:"";
				var dateE = (self.form_date_end.length > 0)?self.form_date_end:(this.tableDate.date_end.length > 0)?this.tableDate.date_end:"";
				var cp = (self.form_count_people.length > 0)?self.form_count_people:"";
				var durS = (self.form_dur_start.length > 0)?self.form_dur_start:"";
				var durE = (self.form_dur_end.length > 0)?self.form_dur_end:"";
                self.mt_status("Загрузка фильтра");
                //DefaultURL = "/?_module=filters&_action=buildFilt&id=" + self.issue_id
                //var uri = "/mastertour/filter.php?id=" + self.issue_id;
                var uri = "/?_module=filters&_action=buildFilt&id=" + self.issue_id;
                self.jq.ajax({
					type: "GET",
					url: uri,
					data: ((dateS.length > 0)?"date_S=" + dateS:"")+((dateE.length > 0)?"&date_E=" + dateE:"")+((cp.length > 0)?"&countp=" + cp:"")+((durS.length > 0)?"&dur_S=" + durS:"")+((durE.length > 0)?"&dur_E=" + durE:""),
					cache: false,
					success: self.PreLoadFilter
				});
                self.mt_status("Загрузка таблиц...");
                //DefaultURL = "/?_module=filters&_action=mtdraw"
                //var uri = "/mastertour/filters.php?action=draw";
                var uri = "/?_module=filters&_action=draw";
                self.jq.ajax({
					type: "GET",
					url: uri,
					data: "id=" + self.issue_id +
						(form_encoded.length > 0 ? "&form=" + form_encoded : ""),
					cache: false,
					success: self.PreLoadMTTable
				});
            }
        }
    }
//>----------------------------------------------------------------------------------------------------------
    this.PreLoadFilter = function(o){
		self.jq("#PriceFilter").empty();
		if(o.length > 0){
			self.jq("#PriceFilter").html(o);
		} else {
			self.ThrowErr('Error of loading of the filter');
		}
	}
//>----------------------------------------------------------------------------------------------------------
	this.PreLoadMTTable = function(o){
		self.mt_status("Загрузка Таблиц");
		var as = self.jq("#one").val();
		var ap = self.jq("#two").val();
		self.jq("#PriceList").empty();
		if(o.length > 0){
			self.jq("#PriceList").html(o);
			//self.jq("#PriceList tr[class*='_x']").remove();
		}
		self.mt_status();
	}
//>----------------------------------------------------------------------------------------------------------
    this.isOnline = function(current){
		this.jq.ajax({
			type: "GET",
			url: "/?_module=filters&_action=getLinks",
			data: "id=" + current,
			cache: false,
			success: function(r){
				if(r == 'false'){
					self.jq("#online12394").empty();
					self.jq("#online12394").remove();
				}
			}
		});
	}
//>----------------------------------------------------------------------------------------------------------
    this.filterSubmit = function(issue_id){
		
		this.form_date_start	= self.jq("#one").val();
		this.form_date_end		= self.jq("#two").val();
		this.form_count_people	= self.jq("#three").val();
		this.form_dur_start		= self.jq("#four").val();
		this.form_dur_end		= self.jq("#five").val();


		return this.MTLoad(issue_id, true);
	}
//>----------------------------------------------------------------------------------------------------------
    this.mt_status = function(text){
		self.jq("#mt_status").html((text ? '<font style="color: #FF3300;">' + text + '</font>' : '<font style="color: #FF3300;display:none;">Готово</font>'));
	}
//>----------------------------------------------------------------------------------------------------------
    this.ThrowErr = function(txt){
		throw new Error('Filter v' + self.version + '.' + self.build + '::Applet-Error ' + txt);
		return false;
	}
}