/**
 * @author Oren.Chen
 */
JSoul.$(function(){
	JSoul("#houseList").initSwitch();
});


JSoul.fn.extend({
	initSwitch: function(){
		var choosed = null;
		var selected = 0;
		this.find("@input,name,comparid[]").bindEvent({
			onclick: function(e){
				if(this.checked == true){
					if(selected >= 5){
						alert("参与对比的房源数目不能超过5个！");
						return false;
					}else{
						selected++;
					}
				}else{
					selected--;
				}
			}
		});
		var mainform = JSoul("#mainform").bindEvent({
			onsubmit: function(e){
				if(selected <= 1){
					alert("请至少选择两个房源进行对比！");
					return false;
				}else if(selected > 5){
					alert("参与对比的房源数目不能超过5个！");
					return false;
				}
			}
		});
		this.find("@li,className,radius").each(function(i){
			var obj = JSoul(this);
			obj.extend({
				isOpen: false,
				map:false,
				mapWarp:obj.find("@div,className,map").get(0),
				btn: obj.find("@a,Longitude,*").bindEvent({
					onclick: function(e){
						obj.change(obj,this);
					}
				}),
				open: function(){
					
					this.btn.innerHtml("<span>[收缩]</span>");
					this.className("radius current");
					this.isOpen = true;
					this.showMap();
				},
				close: function(){
					this.btn.innerHtml("<span>[展开]</span>");
					this.className("radius");
					this.isOpen = false;
				},
				point: null,
				showMap: function(){
					if(!this.map){
						var lon = this.btn.getAttribute("Longitude");
						var lat = this.btn.getAttribute("Latitude");
						if (lon && lat && GBrowserIsCompatible()) {
							this.map = new GMap2(this.mapWarp, 10);
							this.point = new GLatLng(lon, lat);
						}
						this.map.addOverlay(new GMarker(this.point));
					}
					if(this.map){
						this.map.setCenter(this.point, 12);
					}
				},
				change: function(you){
					if(this.isOpen){
						you.close();
					}else{
						if(choosed && choosed != you){
							choosed.close();
						}
						choosed = you;
						you.open();
					}
				}
			});
			//将第一个展开
			if(!choosed){
				choosed = obj;
				obj.open();
			}
		});
		return this;
	}
});