// 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(iid,itemtype,point1,point2) {
	itemUUID = iid;
	_Gmap = new GMap2(document.getElementById("mymap"));
	_Gmap.addControl(new GLargeMapControl());
	_Gmap.addControl(new GMapTypeControl());
	_Gmap.enableScrollWheelZoom();
	_Gmap.enableContinuousZoom();
	_Gmap.enableDoubleClickZoom();
	if(!point1 || !point2){
		point1="23.077984742964045";
		point2="114.41620230674743";
	}
	var point = new GLatLng(point1,point2);
	_Gmap.setCenter(point, mapLevel);
	GEvent.addListener(_Gmap, 'moveend', mapListener);
	GEvent.addListener(_Gmap, 'zoomend', mapListener);
	
	getUBounds();
	



		/* first set of options is for the visual overlay.*/
        var boxStyleOpts = {
          opacity: .2,
          border: "2px solid red"
        }

        /* second set of options is for everything else */
        var otherOpts = {
          buttonHTML: "<img src='images/dragzoom.gif' />",
          buttonZoomingHTML: "<img src='images/zoom-button-activated.gif' />",
          buttonStartingStyle: {width: '24px', height: '24px'}
        };

        /* third set of options specifies callbacks */
        var callbacks = {
          //buttonclick: function(){GLog.write("Looks like you activated DragZoom!")},
          //dragstart: function(){GLog.write("Started to Drag . . .")},
          //dragging: function(x1,y1,x2,y2){GLog.write("Dragging, currently x="+x2+",y="+y2)},
		  //dragend: function(nw,ne,se,sw,nwpx,nepx,sepx,swpx){GLog.write("Zoom! NE="+ne+";SW="+sw)}
		 
           // dragend: function(nw,ne,se,sw,nwpx,nepx,sepx,swpx){
				 //getUBounds();
			dragend: function(){
				getDragData(ld_point_lat,ru_point_lat,ld_point_lng,ru_point_lng);
				refer2=true;combo2();
			/*var retUrl = "data/getForeItemNew2.php"
			var attr1 = "?id="+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;
				GLog.write(req+","+nw);*/
					}
        };
  
        _Gmap.addControl(new DragZoomControl(boxStyleOpts, otherOpts, callbacks));




getForeData(iid);
if(iid) getItemData(itemUUID,itemtype);
}


function getDragData(ld_point_lat,ru_point_lat,ld_point_lng,ru_point_lng){
	var retUrl = "data/getForeItemNew2.php"
	var attr1 = "?x_point1=" + ld_point_lat;
	var attr2 = "&x_point2=" + ru_point_lat;
	var attr3 = "&y_point1=" + ld_point_lng;
	var attr4 = "&y_point2=" + ru_point_lng;
	var req = retUrl + attr1 + attr2 + attr3 + attr4;
	//window.open(req);
	loadByAjax(req,putDragData);
	loadByAjax(req,addForeTrg);
	return true;
}



function putDragData(rsp){
	var result = rsp.responseText;
	if(result.length==0){
		$("#map_option2").html();
		return;	
	}
	//alert(result);
	var itemparas = result.split('^');
	//iconArray = new Array();
	var putData="",j=0;
	for(var i = 0; i < itemparas.length; i++){		
		var data = itemparas[i].split(';');
/*
23.07876396179199;114.41460418701172;01;8;业名称;业地址;1^
23.07827186584473;114.41576385498047;01;9;物业名称;物业地址;1^
23.07868576049805;114.41423797607422;01;12;物业名称;物业地址;1
		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]));
	    j=i+1;
		putData+="<div class=drag>"+j+"<A onclick=\"getItemData('"+data[3]+"','1');\" href=\"javascript:void(0);\">";
		putData+="<IMG height=16  hspace=10 src=images/house_position.gif width=31 align=absMiddle border=0></A>";
		putData+="<a href='show.php?id="+data[3]+"' target='_blank'><span class=dragf>"+data[4]+"</span></a></div>";
		}		
	$("#map_option2").html(putData);//alert(data[2]);
	//alert(putData);
}






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 = 'images/i-m-'+iconnum+'.png';
	icon.shadow = "images/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 = "data/getForeItemNew2.php"
	var attr1 = "?id="+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);
	//$("#contentdata").html(req);
	//U.gi('order0').value = req;
	loadByAjax(req,addForeTrg);
	//新增s
	loadByAjax(req,putDragData);
	//新增e
	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 = 'images/i-m-'+data[2]+'.png';
		icon.shadow = "images/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(iid,itemtype){
	itemUUID = iid;
//	alert(itemUUID);
	var retUrl = "data/getMapItemData.php"
	var attr1 = "?id="+itemUUID;
	var attr2 = "&t="+itemtype;
	var req = retUrl + attr1 + attr2;
	loadByAjax(req,openMapInfo);
	return true
}

function openMapInfo(rsp){
	var result = rsp.responseText;
	//alert(result);
	if(result.length==0){
		return;	
	}
	var data = result.split('^&');
	//var point = new GLatLng(parseFloat(data[0]),parseFloat(data[1]));
	var point = new GLatLng(parseFloat(data[0]),parseFloat(data[1]));
//	U.gi('areastr').innerHTML = '目前所在的區域：'+data[2];
/*
	_Gmap = new GMap2(document.getElementById("mymap"));
	_Gmap.addControl(new GLargeMapControl());
	_Gmap.addControl(new GMapTypeControl());
	//_Gmap.enableScrollWheelZoom();
	_Gmap.enableContinuousZoom();
	_Gmap.enableDoubleClickZoom();
*/

	_Gmap.setCenter(point, mapLevel);
	_Gmap.openInfoWindow(point,data[3]);	
}


function getItemData2(iid,itemtype){
	itemUUID = iid;
//	alert(itemtype);
	var retUrl = "data/getMapItemData.php"
	var attr1 = "?id="+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);
    }
}

//]]>