
var currprojcode;//定义全局楼盘编号
var housepage=1; //房源当前页
var _projcodes;
var _projlistfrommp=new Array();
function getData(url, fun){
		var xmlHttp = sf_ajax.xmlHttp;
		xmlHttp.open("GET", url, true);
		xmlHttp.onreadystatechange = function(){sf_loadinghandle(xmlHttp.readyState==4);if(xmlHttp.readyState==4) fun (xmlHttp);};
		xmlHttp.send(null);	
	}
function getMapInfo(){//解析地图数据，返回坐标信息
    //alert(3);
	var txt=arguments[0].responseText;
	var _newcodeArray=new Array();
	if(txt.indexOf("<x>")<0){mapObj.removeAllOverlays();SF_G.maps=null;return;};
	var _xp=txt.match(/\w+(?=<\/x>)/g);
	var _yp=txt.match(/\w+(?=<\/y>)/g);
	var _newcode=txt.match(/\w+(?=<\/extid>)/g);	
	
	_newcodeArray=_newcode;
	for(var i=0;i<_xp.length;i++){
	    for(var j=0;j<SF_G.maps.length;j++)
	    {
	        if(_newcode[i]==SF_G.maps[j].newcode)
	        {
	            _newcodeArray[i]= new Object();
	            _newcodeArray[i].xy=_xp[i]+","+_yp[i];
	            _newcodeArray[i].newcode=SF_G.maps[j].newcode;
	            _newcodeArray[i].pname=SF_G.maps[j].projname;
	            break;
	        }
	    }
	}	
	SF_G.maps=_newcodeArray;//把所有楼盘地图信息保存
	showsfMap(_newcodeArray);
}
	
function showsfMap(obj) {//添加地图标点
//alert(base.getCityCenter(base.currCity).split(","))
    //alert(4);
    mapObj.removeAllOverlays();
    var points = new Array(); 
    //var _arr=obj["items"];
    //alert(_arr[0].xy);
    for(var i=0;i<obj.length;i++)
    {
	    if(!!obj[i].xy)
	    {
		    var _ps = new MStyle(); 
		    _ps.lineColor = 0xffffff; 
		    _ps.lineSize = 1; 
		    _ps.fillColor = 0x6699CC; 
		    _ps.fillOpacity = 90; 
		    _ps.labelColor = 0xffffff; 
		    _ps.textColor = 0xffffff;
		    _ps.showTip=false;
		    var _sp= new MPointOverlay(new MLatLng(obj[i].xy), obj[i].pname, _ps, obj[i].newcode);
		    mapObj.addEventListener(MMap.EVENT_POINT_CLICKED,pressponita);
		    points.push(_sp);
	    }
    }
    //alert(points);
    if(points.length!=0)
    {
	    mapObj.drawPoints(points, true);
    }
    else {
	    //var _arr=SF_Search_Newhouse.getCityCenter(SF_Search_Newhouse.currCity).split(",");
	    mapObj.setZoomAndCenter("13",new MLatLng("nskoknoijojKIHF","lksfiiqlhuGMDJ"));
	    //mapObj.setZoomAndCenter("13",new MLatLng(_arr[1].toString(),_arr[0].toString()));	
	    //mapObj.setCenterByLatLng(_arr[1], _arr[2])
    	
    }
}
//处理地图点击事件
function pressponita(event)
{
    //event.args=mapId,clickLng,clickLat,id 
    var pointarray=event.args.split(",");
    if(currprojcode=="")
    {    currprojcode=pointarray[4];}
    else if(currprojcode!=pointarray[4])
    {    currprojcode=pointarray[4]; housepage=1;}
    gethouselist();
}
//左侧楼盘点击，首先清理房源列表，防止没有地图的房源先出现
function leftprojclick(projcode)
{
    housepage=1;
	currprojcode="";
	$("maphouse").style.display="none";
    var i=0;
    currprojcode=projcode; housepage=1;
    if(SF_G.maps==null)
    {
    mapObj.setZoomAndCenter("11",new MLatLng(SF_Search_Newhouse.getCityCenter(SF_Search_Newhouse.currCity)));//根据城市中心定位
     gethouselist();
        return;
        }
    for(var j=0;j<SF_G.maps.length;j++)
    {
        if(currprojcode==SF_G.maps[j].newcode)
        {
            i=1;
           mapObj.setZoomAndCenter("13",new MLatLng(SF_G.maps[j].xy));
        }
    }
    if(i==0)
     {   mapObj.setZoomAndCenter("11",new MLatLng(SF_Search_Newhouse.getCityCenter(SF_Search_Newhouse.currCity)));//根据城市中心定位
     gethouselist();}
}
//拼接搜索条件
function getsearchparm()
{
    var urlparm="";
    function checkisempty(o)
    {
        var svalue=$(o).value;
        //if(isIE())
        //    svalue=UrlEncode(svalue);
        if($(o).value!="")
            urlparm+="&"+o+"="+escape(svalue);
    }
	checkisempty("purpose");
	checkisempty("room");
	checkisempty("hall");
	checkisempty("toliet");
	checkisempty("pricemin");
	checkisempty("pricemax");
	checkisempty("areamin");
	checkisempty("areamax");
	checkisempty("keyword");
	checkisempty("district");
	checkisempty("comarea");
	checkisempty("businesstype");
	return urlparm;
}
//根据楼盘号取得房源列表
function gethouselist()
{
    var urlparm=getsearchparm();

	urlparm+="&projcode="+currprojcode+"&main_page="+housepage+"&pagesize=10&r="+new Date().getTime();
    var getstr="/apt/apt/apt_info/ajaxproxy.aspx?atype=7"+urlparm;
    getData(getstr,showHouseList);
}
function showHouseList(data)
{   //需要处理获取不到的错误信息
    var _html=gethouselistHtml(data.responseXML.getElementsByTagName("hit"));//取出搜索结果
    if(_html=="")
        return ;
    var _allcount=data.responseXML.getElementsByTagName("allResultNum")[0].firstChild.nodeValue; //房源总数 
    $("maphouse").style.display="";
    $("dhouselist").innerHTML =_html;
    $("dhousepager").innerHTML=housepagerHtml(10,_allcount,housepage);
}
var itemTemplate="<div><span>$houseid</span><span>$pname</span><span>$hroom</span><span>$htype</span></div>";
var itemTemplate1='<li class="mpbgc"><a href="$hsource" target="_blank"><span class="duilc mapwid1">$htype</span><span class="mapwid4">$hroom</span><span class="mapwid3 duirc">$hprice</span><span class="duirc mapwid1">$agent</span></a></li>'
var itemprojTemplate='<li><p><a href="#" onclick="leftprojclick($projcode);">$projname</a><span class="gray">$hcount</span></p></li>';
//房源列表解析
function gethouselistHtml()
{
    var xml=arguments[0];
    if(xml.length==0)
    { alert("该楼盘暂无房源。");    return "";}
	var tp=itemTemplate1;
	var pt="";
	var _out=[];
	$("hprojname").innerHTML=xml[0].childNodes[1].firstChild.nodeValue;
	pt=xml[0].childNodes[8].firstChild.nodeValue;
	_out.push('<li class="blue"><span class="duilc mapwid1">类型</span><span class="mapwid4">户型/面积</span><span class="mapwid3">价格<font class="size9">'+pt+'</font></span><span class="duirc mapwid1">信息来源</span></li>');
	for(var i=0;i<xml.length;i++)
	{
	    _out.push(tp.replace(/\$htype/g,xml[i].childNodes[2].firstChild.nodeValue).replace(/\$hroom/g,
	        xml[i].childNodes[3].firstChild.nodeValue).replace(/\$hprice/g,xml[i].childNodes[5].firstChild.nodeValue)
	        .replace(/\$hsource/g,xml[i].childNodes[6].firstChild.nodeValue).replace(/\$agent/g,xml[i].childNodes[7].firstChild.nodeValue));
	}
	//if(_out.length==0)
	return _out.join("");    
}
//房源分页委托
function housepagerHandle() {
	//currprojcode=arguments[0];
	housepage=arguments[0];
	gethouselist();
}
//生成房源列表分页控件
function housepagerHtml(pagesize,allcount,currpage) {
	var pagenum=Math.ceil(allcount/pagesize);
	if(pagenum==1)return "";
	var _out="";
	if(currpage<6){
	    _out+="<span>";
		for(var i=1;i<=(pagenum<=5?pagenum:5);i++)
		{
			if(i!=currpage)
			_out+='[<a href="#" onclick="housepagerHandle('+i+')">'+i+'</a>]';
			else
			_out+='['+i+']';
		}
		_out+="</span>";
	}
	else{
	    _out+="<span>";
		for(var i=currpage-3;i<=(pagenum-currpage>1?currpage+1:pagenum);i++)
		{
			if(i!=currpage)
			_out+='[<a href="#" onclick="housepagerHandle('+i+')">'+i+'</a>]';
			else
			_out+='['+i+']';
		}
		_out+="</span>";
	}//
	if(currpage!=1)
	{
		_out='<span><a href="#" onclick="housepagerHandle('+(currpage-1)+')">上一页</a></span>'+_out;
	}
	if(currpage!=pagenum&&pagenum!=0)
	{
		_out+='<span><a href="#" onclick="housepagerHandle('+(currpage+1)+')">下一页</a></span>';
	}
	return _out;
}
//楼盘列表解析
function getprojlistHtml()
{
    var xml=arguments[0];
	var tp=itemprojTemplate;
	var _out=[];
	for(var i=0;i<xml.length;i++)
	{
	    _out.push(tp.replace(/\$projname/g,xml[i].childNodes[1].firstChild.nodeValue).replace(/\$hcount/g,
	        xml[i].childNodes[2].firstChild.nodeValue).replace(/\$projcode/g,xml[i].childNodes[0].firstChild.nodeValue));
	}
	//if(_out.length==0)
	return _out.join(""); 
}
//普通搜索 生成楼盘列表分页控件
function porjpagerHtml(pagesize,allcount,currpage) {
	var pagenum=Math.ceil(allcount/pagesize);
	if(pagenum==1)return "";
	$("dpropager").style.display="";
	var _out="";
	if(currpage<6){
	    _out+="<span>";
		for(var i=1;i<=(pagenum<=5?pagenum:5);i++)
		{
			if(i!=currpage)
			_out+='[<a href="#" onclick="projpagerHandle('+i+')">'+i+'</a>]';
			else
			_out+='['+i+']';
		}
		_out+="</span>";
	}
	else{
	    _out+="<span>";
		for(var i=currpage-3;i<=(pagenum-currpage>1?currpage+1:pagenum);i++)
		{
			if(i!=currpage)
			_out+='[<a href="#" onclick="projpagerHandle('+i+')">'+i+'</a>]';
			else
			_out+='['+i+']';
		}
		_out+="</span>";
	}//
	if(currpage!=1)
	{
		_out='<span><a href="#" onclick="projpagerHandle('+(currpage-1)+')">上一页</a></span>'+_out;
	}
	if(currpage!=pagenum&&pagenum!=0)
	{
		_out+='<span><a href="#" onclick="projpagerHandle('+(currpage+1)+')">下一页</a></span>';
	}
	return _out;
}
//楼盘分页委托
function projpagerHandle() {
	SF_Search_Newhouse.currPage=arguments[0];
	housepage=1;
	currprojcode="";
	$("maphouse").style.display="none";
	setRequestForList();
}
function setRequestForList () 
{//根据条件获得楼盘数据
    var _t=getsearchparm();

	_t+="&main_page="+SF_Search_Newhouse.currPage;	
	getData("/apt/apt/apt_info/ajaxproxy.aspx?atype=6"+_t+"&num=100&r="+new Date().getTime(),showList);
}
//拉框搜索请求
function lkRequest(){
		var url="/apt/apt/apt_info/ajaxproxy.aspx?atype=3&kw=&st=别墅&mp="+SF_Search_Newhouse.currMapData+"&ct="+SF_Search_Newhouse.currPage+"&";
		getData(url+new Date().getTime(),lkSearch);
}
//处理MAP返回数据，返回的是拉框内的楼盘ID,在此处需要保存返回来的坐标信息
function lkSearch(data){
        //初始化数据
        _projlistfrommp=new Array();
        SF_G.maps=_=null;
        $("dpropager").innerHTML="";
        $("dprolist").innerHTML="";
        //初始化完毕
		var base=SF_Search_Newhouse;
		var txt=data.responseText;
		var _newcodeArray=[];
		if(txt.indexOf("<x>")<0){alert("所选范围没有相关楼盘，请重新拉框！");base.currMapData=base.currTempMapData;return;};
		if(base.currMapData!="")base.currTempMapData=base.currMapData;
		if(base.currMapCount==0)base.currPage=1;
		base.currMapCount=txt.match(/\w+(?=<\/count>)/i);
		var _pg=pagerHtml4Map(10,base.currMapCount,base.currPage);
		$("dpropager").innerHTML=_pg;
		var _newcode=txt.match(/\w+(?=<\/extid>)/g); //以下为处理地图标点信息
		var _xp=txt.match(/\w+(?=<\/x>)/g);
	    var _yp=txt.match(/\w+(?=<\/y>)/g);
	    //给临时楼盘标点赋值，直接画地图标点
	    for(var i=0;i<_xp.length;i++){
            _projlistfrommp[i]= new Object();
            _projlistfrommp[i].xy=_xp[i]+","+_yp[i];
            _projlistfrommp[i].newcode=_newcode[i];
            _projlistfrommp[i].pname="";
	    }
		getData("/apt/apt/apt_info/ajaxproxy.aspx?atype=6&strNewCode="+_newcode.toString()+"&num=10&"+new Date().getTime(),showList4LK);
}
function showList4LK(data) {//拉框搜索，楼盘列表显示
		var base=SF_Search_Newhouse;
		
		var _html=data.responseXML.getElementsByTagName("hit");
		var _newcodeArray=getMapInfoFromSF(_html); //根据数据库搜索结果来获取楼盘编号和楼盘名
		$("dprolist").innerHTML=getprojlistHtml(_html);
		housepage=1;//初始化房源标识
        currprojcode="";
        $("dhouselist").innerHTML ="";
        $("maphouse").style.display="none";
		SF_G.maps=_newcodeArray;
		for(var i=0;i<_projlistfrommp.length;i++)
		{
		    for(var j=0;j<SF_G.maps.length;j++)
	        {
	            if(_projlistfrommp[i].newcode==SF_G.maps[j].newcode)
	            {
	                _projlistfrommp[i].pname=SF_G.maps[j].projname;
	                break;
	            }
	        }
		}
		SF_G.maps=_projlistfrommp;
		showsfMap(SF_G.maps);
		
}
//拉框搜索 生成楼盘列表分页控件
function pagerHtml4Map(pagesize,allcount,currpage) {
	var pagenum=Math.ceil(allcount/pagesize);
	if(pagenum==1)return "";
	$("dpropager").style.display="";
	var _out="";
	if(currpage<6){
	    _out+="<span>";
		for(var i=1;i<=(pagenum<=5?pagenum:5);i++)
		{
			if(i!=currpage)
			_out+='[<a href="#" onclick="projpagerlkhandle('+i+')">'+i+'</a>]';
			else
			_out+='['+i+']';
		}
		_out+="</span>";
	}
	else{
	    _out+="<span>";
		for(var i=currpage-3;i<=(pagenum-currpage>1?currpage+1:pagenum);i++)
		{
			if(i!=currpage)
			_out+='[<a href="#" onclick="projpagerlkhandle('+i+')">'+i+'</a>]';
			else
			_out+='['+i+']';
		}
		_out+="</span>";
	}//
	if(currpage!=1)
	{
		_out='<span><a href="#" onclick="projpagerlkhandle('+(currpage-1)+')">上一页</a></span>'+_out;
	}
	if(currpage!=pagenum&&pagenum!=0)
	{
		_out+='<span><a href="#" onclick="projpagerlkhandle('+(currpage+1)+')">下一页</a></span>';
	}
	return _out;
}
//拉框搜索返回 楼盘分页句柄
function projpagerlkhandle()
{
    SF_Search_Newhouse.currPage=arguments[0];
	housepage=1;
	currprojcode="";
	$("maphouse").style.display="none";
	lkRequest();
}
function getMapInfoFromSF(){//返回地图信息（楼盘ID，楼盘名）
	var xml=arguments[0];
	var _mapdataArray=new Array();
	for(var i=0;i<xml.length;i++){
		_mapdataArray[i]=new Object();
		_mapdataArray[i].newcode=xml[i].childNodes[0].firstChild.nodeValue;
		_mapdataArray[i].projname=xml[i].childNodes[1].firstChild.nodeValue;
	}
	return _mapdataArray;
}
function showList (data) //普通搜索，楼盘列表显示
{
    //alert(2);
	var base=SF_Search_Newhouse;

	var _html=data.responseXML.getElementsByTagName("hit");//取出搜索结果
	if(_html.length>0)
	{
	    var _allcount=data.responseXML.getElementsByTagName("allResultNum")[0].firstChild.nodeValue;
	    var _newcodeArray=getMapInfoFromSF(_html);
	    if(_newcodeArray.length>0)
	    {
	        //$("dpcount").innerHTML=_allcount;
	        $("dprolist").innerHTML=getprojlistHtml(_html);
	        $("dpropager").innerHTML=porjpagerHtml(10,_allcount,SF_Search_Newhouse.currPage);
	        //alert(_newcodeArray[0].newcode);
	        housepage=1;//初始化房源标识
	        currprojcode="";
	        $("dhouselist").innerHTML ="";
	        $("maphouse").style.display="none";
            //$("dhousepager").innerHTML="";
	        SF_G.maps=_newcodeArray;
	        var _codestr=[];
	        for(var i in _newcodeArray)
	        {
		        _codestr.push(_newcodeArray[i].newcode);
	        }
	        getData("/apt/apt/apt_info/ajaxproxy.aspx?atype=2&extId="+_codestr.toString()+"&"+new Date().getTime(),getMapInfo);
	    }
	}
	else
	{
	    $("dprolist").innerHTML="";
	    $("dpropager").innerHTML="";
	    $("maphouse").style.display="none";
	    alert("对不起，没有符合条件的房源。");
	    mapObj.removeAllOverlays();
	}
}

Number.prototype.NaN0=function(){return isNaN(this)?0:this;}//为Number增加1个NaN0方法，该方法的作用是判断当前Number变量是//不是数组，如果不是数字就返回0，如果是数字就返回数字本身
var iMouseDown  = false;
var dragObject  = null;
var curTarget   = null;

function makeDraggable(item){
	if(!item) return;
	item.onmousedown = function(ev){
		dragObject  = this;
		mouseOffset = getMouseOffset(this, ev);
		return false;
	}
}

function getMouseOffset(target, ev){//得到鼠标相对于target的左上角的相对位置
	ev = ev || window.event;

	var docPos    = getPosition(target);//得到target左上角位置
	var mousePos  = mouseCoords(ev);
	//alert("aa=="+(mousePos.x - docPos.x));
	//alert("bb=="+(mousePos.y - docPos.y));
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

function getPosition(e){
	var left = 0;
	var top  = 0;
	while (e.offsetParent){
		left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
		top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);
		e     = e.offsetParent;
	}

	left += e.offsetLeft + (e.currentStyle?(parseInt(e.currentStyle.borderLeftWidth)).NaN0():0);
	top  += e.offsetTop  + (e.currentStyle?(parseInt(e.currentStyle.borderTopWidth)).NaN0():0);

	return {x:left, y:top};

}

function mouseCoords(ev){//得到浏览器客户区的位置
	if(ev.pageX || ev.pageY){
		return {x:ev.pageX, y:ev.pageY};
	}
	return {
		x:ev.clientX + document.body.scrollLeft - document.body.clientLeft,
		y:ev.clientY + document.body.scrollTop  - document.body.clientTop
	};
}

function mouseDown(ev){
	ev         = ev || window.event;
	var target = ev.target || ev.srcElement;

	if(target.onmousedown || target.getAttribute('DragObj')){
		return false;
	}
}

function mouseUp(ev){

	dragObject = null;

	iMouseDown = false;
}


function mouseMove(ev){
	ev         = ev || window.event;

	/*
	We are setting target to whatever item the mouse is currently on

	Firefox uses event.target here, MSIE uses event.srcElement
	*/
	var target   = ev.target || ev.srcElement;
	var mousePos = mouseCoords(ev);

	if(dragObject){
		dragObject.style.position = 'absolute';
		
		dragObject.style.top      = mousePos.y - mouseOffset.y;
		dragObject.style.left     = mousePos.x - mouseOffset.x;
	}

	// track the current mouse state so we can compare against it next time
	lMouseState = iMouseDown;

	// this prevents items on the page from being highlighted while dragging
	if(curTarget || dragObject) return false;
}

document.onmousemove = mouseMove;
document.onmousedown = mouseDown;
document.onmouseup   = mouseUp;

window.onload = function() {
	makeDraggable(document.getElementById('maphouse'));
}