/**
 * @author Cocowool
 */

 var MapFilter = {
 	pagesize:20,		//每页显示条目数
	currentpage:1,		//当前记录页
	totalpage:0,		//记录总页数
	linknum:3,			//每页显示的数字连接数
	
 	andFilters:new Hash(),
	orFilters:new Hash(),
	filter:'',
	order:"updatetime:desc",
	defaultorder:'id:true',
	defaultmenu:'map_menu1',
	menuCondition:'',
	type:'left',							//区分搜索发起点，值为left 表示请求由左侧发起,top 表示请求由顶端发起,out 表示请求来自外部链接
	sendQueue:[],
	sendInterval:1000,					//检测用户两次单击时间的间隔；
	orCondition:function(obj,event,id){
		this.initPage();
		event= event || window.event; 
		obj = Element.down(obj);
		if('INPUT' != Event.element(event).tagName){
			obj.checked == true?obj.checked=false:obj.checked=true;
		}
		
		if(obj.value == 'ALL'){
			$('searchTip_Region_' + id).innerHTML = "全部";
			obj.up(0).siblings().each(function(s){
				s.down(0).checked = obj.checked;
			})
			
			this.orFilters.each(function(s){
				MapFilter.orFilters.unset(s.key);
			})
		}else{
			$('searchTip_Region_' + id).innerHTML = "";
			
			var flag = true;
			var that;
			obj.up(0).siblings().each(function(s){
				if(s.down(0).value != "ALL"){
					s.down(0).checked == false?flag=false:flag;
					if(s.down(0).checked){
						$('searchTip_Region_' + id).innerHTML += s.down(0).value + "&nbsp;&nbsp;";
					}
				}else{
					that = s.down(0);
				};
			});
			
			if(obj.checked){
				$('searchTip_Region_'  + id).innerHTML += obj.value + "&nbsp;&nbsp;";
				this.orFilters.set(obj.value,"district:" + obj.value + " OR ");
			}else{
				this.orFilters.unset(obj.value);
			}
			
			if(flag && obj.checked){
				that.checked = true;
			}else{
				that.checked = false;
			}
		}

		clearTimeout(this.sendQueue.shift());
		var timeid = setTimeout('MapFilter.sendFilter()',this.sendInterval);
		this.sendQueue.push(timeid);
	},
 	addCondition:function(obj,field){	//并列的查询请求
		$('searchTip_' + field).innerHTML = obj.innerHTML;
		this.initPage();
		if(obj.id.indexOf('ALL') != -1 ){
			this.andFilters.unset(field);			
		}else{
			this.andFilters.set(field,obj.id);
		}
		
		clearTimeout(this.sendQueue.shift());
		var timeid = setTimeout('MapFilter.sendFilter()',this.sendInterval);
		this.sendQueue.push(timeid);
	},
	changeMenu:function(obj){
		if(arguments[1] != false){
			sina_obj_show(obj);
			this.emptyFilter(obj);
			this.initPage();
		
			this.setMenuCondition(obj);
		
			clearTimeout(this.sendQueue.shift());		
			var timeid = setTimeout('MapFilter.sendFilter()',this.sendInterval);
			this.sendQueue.push(timeid);
		}else{
			sina_obj_show($(this.defaultmenu));
			//this.order = "{fields:{\"salestateorder\":false,\"hid\":true}}";
			this.menuCondition = "";
		}
	},
	emptyFilter:function(obj){
		this.orFilters.each(function(s){
			MapFilter.orFilters.unset(s.key);
		});
		this.andFilters.each(function(s){
			MapFilter.andFilters.unset(s.key);
		});
		
		var nodes = obj.select('span');
		nodes.each(function(s){
			s.innerHTML = '';
		});
	},
	setMenuCondition:function(obj){
	 	for (var i = 0, len = MapMenu.length; i < len; i++) {
			if(MapMenu[i].id == obj.id ){
				this.menuCondition = MapMenu[i].condition;
				
				if(MapMenu[i].menu_order){
					this.order = MapMenu[i].menu_order;
				}
			}
		}
	},
	sendFilter:function(){
		switch(this.type){
			case "top":
			case "out":
				break;
			case "left":
			default:
				var orfilter = '';
				this.orFilters.each(function(s){
					orfilter += s.value;
				});
				
				if(orfilter != ''){
					orfilter = '(' + orfilter + " district:毛里求斯 ) AND "		//城区搜索条件
				}
				
				var andfilter = ''
				this.andFilters.each(function(s){
					andfilter += s.value + " AND ";						//其他项目搜索条件
				});
				
				this.filter = orfilter + andfilter;
				//栏目搜索条件
				if(this.menuCondition != ''){
					this.filter += this.menuCondition + ' AND ';		
				}
		
				
				
				
				this.filter = "q=" + this.filter;
				break;
		}
		
		//分页选项
		this.filter += '&s=' + (this.currentpage);
		//显示结果选项
		this.filter += '&p=' + this.pagesize;
		this.filter += '&co=' + this.order;			
	

		changePageSize('e');
		Element.show('map_order_selector');
		sinamap.changeView('topSearchHouse');
		//tip(this.filter)
		sinamap.fireRequest(this.filter,sinamap.fillData);
	},
	setPage:function(p,type){
		this.currentpage = p;
		
		switch(type){
			case "d":					//搜数据库搜索
				MapAbc.rectSearchProxy(MapAbc.rectpoi);
				break;
			case "c":
				MapAbc.centersearchProxy(MapAbc.centerpoi);
				break;
			case "e":					//从搜索引擎搜索
			default:
				this.sendFilter();
				break;
		}
	},
	setPageSize:function(s,type){
		this.pagesize = s;
		
		switch(type){
			case "d":					//搜数据库搜索
				MapAbc.rectSearchProxy(MapAbc.rectpoi);
				break;
			case "c":
				MapAbc.centersearchProxy(MapAbc.centerpoi);
				break;
			case "e":					//从搜索引擎搜索
			default:
				this.sendFilter();
				break;
		}
	},
	setTopCondition:function(obj){
		var value = sinamap.defaultValueCheck(obj);
		if(value){
			this.filter = "q=keyword:" + value ;			
		}else{
			this.filter = "q=";
		}
		this.type = 'top';
				
		this.sendFilter();
	},
	setOutCondition:function(field,value){
		this.filter = "q=" + field + ":" + value;
		this.type = 'out';
		
		if(field=='keyword'){
			$('keywordsearch').value=value;
			$('housekeyword').value=value;
		}

		this.sendFilter();
	},
	initPage:function(){
		this.currentpage = 1;
		this.totalpage = 0;
		this.type = 'left';
	},
	setOrder:function(obj,type){
		this.order =  obj.options[obj.selectedIndex].value ;
//		this.order = "{fields:{\"have_coord\":true,\"salestateorder\":false,\"hometype_order\":false,\"hid\":true}}";

		switch(type){
			case "d":					//搜数据库搜索
				
				break;
			case "e":					//从搜索引擎搜索
			default:
				this.sendFilter();
				break;
		}
	}
 }
