// JavaScript Document
//<![CDATA[
var _Gmap;
var _Umaker;
var level_old;
var level_new;
var ld_point;
var ld_point_lat;
var ld_point_lng;
var ru_point;
var ru_point_lat;
var ru_point_lng;
var makericon;
var makericonArray = new Array();
var iconArray = new Array();
var desc_tag;
var itemUUID;
var perPoint;

function load(objId,point1,point2,theLink,itemName,imgPath,price,houseArea,houseOld,roomNum) {
	itemUUID = objId;
	_Gmap = new GMap2(document.getElementById("mymap"));
	_Gmap.addControl(new GLargeMapControl());
	_Gmap.addControl(new GMapTypeControl());
	//_Gmap.enableScrollWheelZoom();
	_Gmap.enableContinuousZoom();
	_Gmap.enableDoubleClickZoom();
	
	var point = new GLatLng(point1,point2);
	_Gmap.setCenter(point, mapLevel);
	GEvent.addListener(_Gmap, 'moveend', mapListener);
	GEvent.addListener(_Gmap, 'zoomend', mapListener);
	
	getUBounds();	
	getItemData(objId,point1,point2,theLink,itemName,imgPath,price,houseArea,houseOld,roomNum);
}

function peritem_load(point1,point2,iconnum) {
	_Gmap = new GMap2(U.gi('mymap'));
	perPoint = new GLatLng(point1,point2);
	_Gmap.setCenter(perPoint, mapLevel);

	var icon = new GIcon();
	icon.image = '/i/mapicon/i-m-'+iconnum+'.png';
	icon.shadow = "http://drhouse.yam.com/i/shadow.png";
	icon.iconSize = new GSize(40, 40);
	icon.shadowSize = new GSize(40, 40);
	icon.iconAnchor = new GPoint(10, 10);
	icon.infoWindowAnchor = new GPoint(10, 0);
	var marker = new GMarker(perPoint, icon);
	_Gmap.addOverlay(marker);
}

function nodata_load(){
	_Gmap = new GMap2(U.gi('mymap'));
	_Gmap.addControl(new GLargeMapControl());
	_Gmap.addControl(new GMapTypeControl());	
	
	var point = new GLatLng(25.05105414322731,121.53639197201126);
	_Gmap.setCenter(point, mapLevel);
	GEvent.addListener(_Gmap, 'moveend', mapListener);
	GEvent.addListener(_Gmap, 'zoomend', mapListener);
	_Gmap.openInfoWindow(point,"<br /><br /><span class='t12g'>很抱歉,該物件無法查詢到地標點或系統查詢不到任何物件<br /><span class='t13r'>請重新設定搜尋條件。</span></span>",160,120);
}

function nopoint_load(uuid){
	itemUUID = uuid;
	_Gmap = new GMap2(U.gi('mymap'));
	_Gmap.addControl(new GLargeMapControl());
	_Gmap.addControl(new GMapTypeControl());	
	
	var point = new GLatLng(25.05105414322731,121.53639197201126);
	_Gmap.setCenter(point, mapLevel);
	GEvent.addListener(_Gmap, 'moveend', mapListener);
	GEvent.addListener(_Gmap, 'zoomend', mapListener);
	_Gmap.openInfoWindow(point,"<br /><br /><span class='t12g'>很抱歉，此物件目前未能正確定位在地標上。<br /><span class='t13r'>您仍可利用下方列表來查看詳細資料。</span></span>",160,120);
}

function checksel(){
	var form = document.mapitems;
	for(var i=0;i<makericonArray.length;i++){
		_Gmap.removeOverlay(makericonArray[i]);
	}
	for(var i=0 ; i < form.mapitem.length ; i++){
		if(form.mapitem[i].checked) getData(form.mapitem[i].value);
	}
}

function getData(mid){
	getUBounds();	
	var retUrl = "http://drhouse.yam.com/api/getMapItem.php"
	var attr1 = "?mid="+mid;
	var attr2 = "&x_point1=" + ld_point_lat;
	var attr3 = "&x_point2=" + ru_point_lat;
	var attr4 = "&y_point1=" + ld_point_lng;
	var attr5 = "&y_point2=" + ru_point_lng;
	var req = retUrl + attr1 + attr2 + attr3 + attr4 + attr5;
	loadByAjax(req,addTrg);
	return true;
}

function addTrg(rsp){
	var icon_img = new Array();
	icon_img[1] = '/i/i-m-1.png';//停車場
	icon_img[2] = '/i/i-m-11.png';//公園
	icon_img[3] = '/i/i-m-13.png';//百貨公司
	icon_img[4] = '/i/i-m-12.png';//學校
	icon_img[5] = '/i/i-m-9.png';//捷運站
	icon_img[6] = '/i/i-m-10.png';//大賣場
//	icon_img[7] = '/i/i-m-14.png';//加油站
//	icon_img[8] = '/i/i-m-15.png';//洗車場
	var result = rsp.responseText;
	//alert (result);
	if(result.length==0){
		return;	
	}
	var locations = result.split(';');
	for(var i = 0; i < locations.length; i++) {
		var data = locations[i].split(',');
		var point = new GLatLng(parseFloat(data[0]),parseFloat(data[1]));
		var icon = new GIcon();
		icon.image = icon_img[data[4]];
		icon.shadow = "/i/shadow.png";
		icon.iconSize = new GSize(40, 40);
		icon.shadowSize = new GSize(40, 40);
		icon.iconAnchor = new GPoint(10, 10);
		icon.infoWindowAnchor = new GPoint(10, 0);
		//var makericon = new UMarker(point, icon,data[2],data[3],999);
		var makericon = new GMarker(point, icon);
		makericonArray[i] = makericon;
		_Gmap.addOverlay(makericon);
	}
}

function getForeData(iid){
	itemUUID = iid;
	getUBounds();
	var retUrl = "http://drhouse.yam.com/api/getForeItemNew2.php"
	var attr1 = "?iid="+itemUUID;
	var attr2 = "&x_point1=" + ld_point_lat;
	var attr3 = "&x_point2=" + ru_point_lat;
	var attr4 = "&y_point1=" + ld_point_lng;
	var attr5 = "&y_point2=" + ru_point_lng;
	var req = retUrl + attr1 + attr2 + attr3 + attr4 + attr5;
//		alert(req);
	//U.gi('order0').value = req;
	loadByAjax(req,addForeTrg);
	return true
}

function addForeTrg(rsp){
	var result = rsp.responseText;
	if(result.length==0){
		return;	
	}
//	alert(result);
	var itemparas = result.split('^');
	iconArray = new Array();
	for(var i = 0; i < itemparas.length; i++){		
		var data = itemparas[i].split(';');
		
		var iid = data[3]
		var title = data[4];
		var addr = data[5];
		var itemtype = data[6];
		var point = new GLatLng(parseFloat(data[0]),parseFloat(data[1]));
		var icon = new GIcon();
		icon.image = '/i/mapicon/i-m-'+data[2]+'.png';
		icon.shadow = "/i/shadow.png";
		icon.iconSize = new GSize(40, 40);
		icon.shadowSize = new GSize(40, 40);
		icon.iconAnchor = new GPoint(10, 10);
		icon.infoWindowAnchor = new GPoint(10, 0);
		var myMrk = makeMarkWindow(point, icon,title,addr,iid,itemtype);
		iconArray[i] = myMrk;
		_Gmap.addOverlay(myMrk);
	}
		//	alert(data[2]);
}

function makeMarkWindow(point,icon,title,addr,iid,itemtype){
	//var mrk = new GMarker(point, icon,title,addr,200);
	var mrk = new GMarker(point, icon);
	GEvent.addListener(mrk, "click", function() {
		getItemData2(iid,itemtype);
	});
	return mrk;
}

function getItemData(objId,point1,point2,theLink,itemName,imgPath,price,houseArea,houseOld,roomNum){
//	itemUUID = iid;
//	alert(itemUUID);
//	var retUrl = "http://drhouse.yam.com/api/getMapItemData2.php"
//	var attr1 = "?iid="+itemUUID;
//	var attr2 = "&t="+itemtype;
//	var req = retUrl + attr1 + attr2;
//	loadByAjax(req,openMapInfo);
	var htmTag = '<div style="width:0"><table width="200" height="260" border="0" cellpadding="0" cellspacing="0"><tr><td height="5" align="center" class="none"><table width="170" border="0" cellpadding="0" cellspacing="2" bgcolor="#FFFFFF"><tr><td align="center"><span class="t15l"><a href="'+theLink+'"><strong>'+itemName+'</strong></a></span></td></tr></table></td></tr><tr><td height="5" align="center" class="none"><a href="'+theLink+'"><img src="'+imgPath+'" width="120" height="90" border="0" /></a></td></tr><tr><td height="80"><table width="100%" border="0" cellspacing="1" cellpadding="0"><tr><td width="41%" bgcolor="#F0F0F0" class="t11"><font color="#666666">售價：</font></td><td width="59%" bgcolor="#F0F0F0" class="t15o">'+price+'萬元</td></tr><tr><td bgcolor="#F0F0F0" class="t11"><font color="#666666">坪數：</font></td><td bgcolor="#F0F0F0" class="t11">'+houseArea+'坪</td></tr><tr><td bgcolor="#F0F0F0" class="t11"><font color="#666666">屋齡：</font></td><td bgcolor="#F0F0F0" class="t11">'+houseOld+'年</td></tr><tr><td bgcolor="#F0F0F0" class="t11"><font color="#666666">格局：</font></td><td bgcolor="#F0F0F0" class="t11">'+roomNum+'</td></tr></table></td></tr></table></div>';
	var point = new GLatLng(parseFloat(point1),parseFloat(point2));
	_Gmap.setCenter(point, mapLevel);
	_Gmap.openInfoWindow(point,htmTag);
	return true
}

function openMapInfo(rsp){
	var result = rsp.responseText;
	if(result.length==0){
		return;	
	}
	var data = result.split('^&');
	var point = new GLatLng(parseFloat(data[0]),parseFloat(data[1]));
//	U.gi('areastr').innerHTML = '目前所在的區域：'+data[2];
	_Gmap.setCenter(point, mapLevel);
	_Gmap.openInfoWindow(point,data[3]);	
}


function getItemData2(iid,itemtype){
	itemUUID = iid;
//	alert(itemtype);
	var retUrl = "http://drhouse.yam.com/api/getMapItemData2.php"
	var attr1 = "?iid="+itemUUID;
	var attr2 = "&t="+itemtype;
	var req = retUrl + attr1 + attr2;
	loadByAjax(req,openMapInfo2);
	return true
}

function openMapInfo2(rsp){
	var result = rsp.responseText;
	if(result.length==0){
		return;	
	}
	var data = result.split('^&');
	var point = new GLatLng(parseFloat(data[0]),parseFloat(data[1]));
//	U.gi('areastr').innerHTML = '目前所在的區域：'+data[2];
//	_Gmap.setCenter(point, mapLevel);
	_Gmap.openInfoWindow(point,data[3]);
}


function getUBounds(){
	var bounds = _Gmap.getBounds();
	ld_point = bounds.getSouthWest();
	ld_point_lat = ld_point.lat();//point1
	ld_point_lng = ld_point.lng();//point2
	ru_point = bounds.getNorthEast();
	ru_point_lat = ru_point.lat();//point1
	ru_point_lng = ru_point.lng();//point2	
}

function mapListener(){
	level_new = _Gmap.getZoom();
	if(level_new<=13){
		_Gmap.closeInfoWindow();
		_Gmap.clearOverlays();
	}else{
		if(level_old<=13){
			_Gmap.clearOverlays();
			checksel();
			//getForeData(itemUUID);
		}else{
			for(var i=0;i<iconArray.length;i++){
				_Gmap.removeOverlay(iconArray[i]);
			}
			for(var i=0;i<makericonArray.length;i++){
				_Gmap.removeOverlay(makericonArray[i]);
			}
			checksel();
			//getForeData(itemUUID);
		}
	}
	level_old = level_new;	
}

function loadByAjax(resource, callbackFn) {
	var loadingMsg = document.createElement('div');
    loadingMsg.style.cssText = 'background:red; color:white; padding:3px 5px 3px 5px; position:absolute; right:0px; top:0px;';
    loadingMsg.innerHTML = ' 讀取中... ';
	var xmlhttp;
    if(window.ActiveXObject)
      xmlhttp = new ActiveXObject('Microsoft.XMLHTTP');
    else if(window.XMLHttpRequest)
      xmlhttp = new XMLHttpRequest();
    xmlhttp.onreadystatechange = function() {
      if(xmlhttp.readyState==4) {
      	//document.body.removeChild(loadingMsg);
      	if(xmlhttp.status == 200){
           callbackFn(xmlhttp);
        }else{
        	alert(xmlhttp.status);
        }
      }
    };
    try {
          xmlhttp.open('GET', resource, true);
    	  xmlhttp.send(null);
    } catch(ex) {
      alert(ex);
    }
}

//]]>