var Uads = new Array();
var UadThread = 0;
var mapExt;
var Upois = new Array();
var peopleClickPopu;
var centerMarker;
var grabMarker;

function LittleMapInit() {
  /*// initialize map //
  _Umap = new UMap(U.gi('mapDiv'));
  //_Umap.addControl(U_TYPE_CONTROL);
  _Umap.addControl(U_MINIZOOM_CONTROL);
  
  //_Umap.centerMap(new ULatLng(25.03526436710245, 121.52918417674361));
  
  */
  mapExt = new UMapExt(_Umap);
  
  _Umap.addListener('zoom', mapChange);
  _Umap.addListener('moveend', mapChange);
  _Umap.addListener('click', mapClickForLittleMap);
  
  /*if(loc_x && loc_y) {
  	  var x = parseFloat(loc_x);	//x
	  var y = parseFloat(loc_y);	//y
	  var latlng = new ULatLng(y, x, U_TM2_COORDSYS);
	  _Umap.centerAndZoom(latlng, 9);
  } else */gotoCookieLocation();
  
  SearchAll();
  
  if(U.gi('selectedCity'))
    U.gi('selectedCity').onchange = getCityCenter;
  if(U.gi('addressBut'))
  	U.gi('addressBut').onclick = adSearch;
  if(U.gi('Submit'))
  	U.gi('Submit').onclick = adInsert;
  //U.gi('form1').onsubmit = adInsert;
  
  // initialize icon //
  var moveIcon = new UIcon();
  moveIcon.image = "img/walkman.gif";
  moveIcon.iconWidth = 20;
  moveIcon.iconHeight = 20;
  moveIcon.iconAnchor = new UPoint(10, 10);
  moveIcon.infoWindowAnchor = new UPoint(10, 1);
  /*
  UadIconLove = new UIcon();
  UadIconLove.image = "img/12.gif";
  UadIconLove.iconWidth = 20;
  UadIconLove.iconHeight = 20;
  UadIconLove.iconAnchor = new UPoint(10, 10);
  UadIconLove.infoWindowAnchor = new UPoint(10, 1);*/
  
  var centerLatlng = _Umap.getCenter();
  
  centerMarker = new UMarker(centerLatlng ,moveIcon, null, null, 1);
  
  //centerMarker.addListener('click', function(){centerMarker.openInfoWindow('hiih');});
  _Umap.addOverlay(centerMarker);
  
  grabMarker = new mapExt.setGrabMarker(centerMarker);
  grabMarker.doneAction = openInfo;
  /*grabMarker.doneAction = function callback(latlng){
	alert(latlng.lat() +','+ latlng.lng());
  };*/
  
  grabMarker.init();  //-->上面的event定義好就可以初始
	//var testLatlng = grabMarker.marker.getPoint();
	//console.log(testLat
  
}

function openInfo()  {
    centerMarker.openInfoWindow('移動到你想要的位置。',150,50);
    centerMarker.setPoint(grabMarker.marker.getPoint());
    //theX=grabMarker.marker.getPoint().x();
    //theY=grabMarker.marker.getPoint().y();
}

function getCityCenter() {
	if('' !=U.gi('selectedCity').value) {
		var str = _addressCenter();
		//alert(str);
		var xy = str.split(',');
		var x = parseFloat(xy[0]);
  		var y = parseFloat(xy[1]);
		_Umap.centerAndZoom(new ULatLng(parseFloat(y), parseFloat(x), U_TM2_COORDSYS), 9);
		centerMarker.setPoint(new ULatLng(parseFloat(y), parseFloat(x), U_TM2_COORDSYS));
	}
	return true;
}

function adSearch() {
  //var bounds = _Umap.getBounds();
  var city = U.gi('selectedCity').value;
  if(''==city) {
	  alert('請先選取城市!!!');
  } else {
	  var addr = U.gi('address').value;
	  if('' != addr.trim()) {
		addr = city + addr;
		addr = encodeURI(addr);
		var url = 'adSearch.jsp?addr='+addr;//+'&encode='+encode+'&sn='+sn;
		//alert('adSearch url==>\n' + url);
		//url = encodeURI(url);
		U.loadByAjax(url, adSearchForAddress);	//call AJAX
		//ajaxCall(url, adSearchCallback, true);
	  } else {
		  U.gi('address').focus();
		  alert('地址處請勿空白!!!');
	  }
  }
}

function adSearchForAddress(xmlhttp) {
  //alert("enter call back");
  clearAds();
  var doc = xmlhttp.responseXML;
  //alert(doc);
  var ads = U.gt(doc, 'RECORD');
  //alert(ads.length);  
  var bounds = _Umap.getBounds();
  if(0 != ads.length) {
	  var MSG = U.getTagValue(ads[0], 'MSG');
	  var LONGITUDE = parseFloat(U.getTagValue(ads[0], 'LONGITUDE'));	//x
	  var LATITUDE = parseFloat(U.getTagValue(ads[0], 'LATITUDE'));	//y
	  var LEVEL = U.getTagValue(ads[0], 'LEVEL'); 
	  var ADDRESS = U.getTagValue(ads[0], 'ADDRESS'); 
	  
	  var title = '告白地點';
	  var desc = ADDRESS;
	  
	  var latlng = new ULatLng(LATITUDE, LONGITUDE, U_TM2_COORDSYS);
	  var ad = new UMarker(latlng, UadIcon, title, desc);
	  ad.isAdPoi = false;
	  Uads.push(ad);
	  _Umap.addOverlay(ad);
	  
	  _Umap.centerMap(latlng);
  } else {
	  alert('無法定位。\n請檢查地址是否正確or移動圖示來進行定位。');
  }
}

function SearchAll() {
  var bounds = _Umap.getBounds();
  
  var url = 'searchAll.jsp?NEx='+bounds.getNorthEast().x()+'&NEy='+bounds.getNorthEast().y()+'&SWx='+bounds.getSouthWest().x()+'&SWy='+bounds.getSouthWest().y();
  //alert(url);
  U.loadByAjax(url, adSearchCallback);
}
function adSearchCallback(xmlhttp) {
  //alert("enter call back");
  clearPoi();
  var doc = xmlhttp.responseText.trim();
  if(!doc)	return;
  //alert(doc);
  var ads = doc.split(';');
  //alert(ads.length);  
  var bounds = _Umap.getBounds();
  if(ads.length > 0) {
	  for(var i=0; i<ads.length; i++) {
		  var data = ads[i].split(',');
		  
		  var name = data[0];	//告白者暱稱
		  var cult = data[1];	//告白對象
		  var address = data[2];	//address
		  
		  var content = data[3];	//content
		  var photo = data[4];	//photo
		  var date = data[5];	//date
		  
		  var x = parseFloat(data[6]);	//x
		  var y = parseFloat(data[7]);	//y
		  
		  var accountId = data[8];
		  var times = data[9];
		  
		  var idkey = data[10];
		  
		  var title = name + ' to ' + cult;
		  var latlng = new ULatLng(y, x, U_TM2_COORDSYS);
		  var ad = new UMarker(latlng, UadIconLove, title);
		  ad.isAdPoi = true;
		  
		  ad.name = name;
		  ad.cult = cult;
		  ad.address = address;
		  
		  ad.content = content;
		  ad.photo = photo;
		  ad.date = date;
		  
		  ad.accountId = accountId;
		  ad.times = times;
		  
		  ad.idkey = idkey;
		  
		  Upois.push(ad);
		  _Umap.addOverlay(ad);
		  
		  //if(peopleClickPopu && peopleClickPopu == accountId) {
		  if(peopleClickPopu && peopleClickPopu == idkey) {
		  	//alert(peopleClickPopu +','+accountId);
			mapClickForLittleMap(ad,latlng);
			peopleClickPopu = null;
		  }
	  }
  }
}
/*
function mapClick(overlay, latlng) {
  if(overlay) {
    if(!overlay.isAdPoi)
      return;
    //UviewAd = true;
	popo_MapMove = false;
	
    overlay.openInfoWindow('<font color="#333333"><strong>'+overlay.label+'</strong></font>'+ overlay.desc+getNearCityShopHTML(), (paopaoW+theH), (paopaoH+theH));
	U.gi('setStartLink').onclick = function() {_setRoutingStartLocation(overlay.getPoint(), overlay.label);};
    U.gi('setEndLink').onclick = function() {_setRoutingEndLocation(overlay.getPoint(), overlay.label);};
	
  }
}
*/
function mapChange() {
  clearTimeout(UadThread);
  if(_Umap.getZoomLevel()<7) {
    clearAds();
	clearPoi();
  } else {
	UadThread = setTimeout(SearchAll, 1000);
  }
  writeCookieLocation();
  // about 基礎地標
  /*clearTimeout(UpoiThread);
  if(_Umap.getZoomLevel()<7) {
    clearPoi();
	clearPoi();
  } else {
	  if(UadCategory && UviewAd)
    	UpoiThread = setTimeout(function() {getPoi(UpoiSource, UpoiType);}, 1000);
  }*/
  //UviewAd = false;	//回復移動map即search狀態
}

function clearAds() {
  while(Uads.length>0)
    _Umap.removeOverlay(Uads.pop());
}
function clearPoi() {
  while(Upois.length>0)
    _Umap.removeOverlay(Upois.pop());
}
function adInsert() {
  var location_x;
  var location_y;
  var userPoint;
  //alert('Uads.length==>'+Uads.length);
  if(Uads.length > 0) {
	  userPoint = Uads[0];
  }
  if(userPoint) {
	  var _UPoint = userPoint.getPoint();
	  //alert(_UPoint.lat()+'\n'+_UPoint.lng());
	  //alert(_UPoint.x()+'\n'+_UPoint.y());
	  location_x = _UPoint.x();
  	  location_y = _UPoint.y();
  } else {	//拖地標來定位
	  //alert("請先 <<定位>> \"告白地點\"");
	  //return;
	  //centerMarker.setPoint(new ULatLng(parseFloat(y), parseFloat(x), U_TM2_COORDSYS));
	  location_x = grabMarker.marker.getPoint().x();
      location_y = grabMarker.marker.getPoint().y();
	  //alert(location_x+'\n'+location_y);
  }
  var accountId = U.gi('accountId').value;
  //告白者暱稱
  var surName = U.gi('surName').value;
  if('' == surName.trim()) {
	  surName = accountId;
  }
  //告白對象
  var cult = U.gi('cult').value;
  if('' == cult.trim()) {
	  cult = '某人';
  }
  var address = '';
  if('' != U.gi('selectedCity').value) {
	  address += U.gi('selectedCity').value;
  }
  if('' != U.gi('address').value) {
	  address += U.gi('address').value;
  } else {
	  address += '無';
  }
  //內容
  var saying = U.gi('saying').value.replace(/\r\n|\r|\n/g, '<br>');
  /*if('' == saying.trim()) {
	  
  }*/
  var photoLink = U.gi('photoLink').value;
  if('http://' == photoLink.trim()) {
	  photoLink = '';
  }
  //alert(location_x+'\n'+location_y);
  var encode = '';
  if(xbDetectBrowser()){
	  encode = 'Big5';
  } else {
	  encode = 'UTF-8';
  }
  //var bounds = _Umap.getBounds();
  
  var url = 'insertORupdate.jsp?accountId='+accountId+'&surName='+surName+'&cult='+cult+'&address='+address+'&saying='+saying+'&photo='+photoLink+'&location_x='+location_x+'&location_y='+location_y+'&encode='+encode;
  //alert(url);
  U.loadByAjax(url, adInsertCallback);
}
function adInsertCallback(xmlhttp) {
	var doc = xmlhttp.responseText.trim();
	//alert(doc);
	if('成功'==doc) {
		location.href = 'http://211.21.21.84/event/valentine/valentine.jsp';
	} else {
		alert('新增失敗唷');
	}
}

String.prototype.trim=trim;
function trim() {
	return this.replace(/^\s+|\s+$/g,"");
}
//get cookie
function gotoCookieLocation() {
  var str = document.cookie;
  if(!str) {
    _Umap.centerAndZoom(new ULatLng(25.04, 121.55), 9);
    return;
  }
  str = unescape(str)+';';
  var idx = str.indexOf('lastLocation=');
  if(idx<0) {
    _Umap.centerAndZoom(new ULatLng(25.04, 121.55), 9);
    return;
  }
  str = str.substring(idx+13, str.indexOf(';', idx));
  var xyz = str.split(',');
  var lat = parseFloat(xyz[0]);
  var lng = parseFloat(xyz[1]);
  var lv = parseInt(xyz[2]);
  
  //_Umap.centerAndZoom(new ULatLng(lat, lng), lv);	//20071206:修改預設層級為 8級
  _Umap.centerAndZoom(new ULatLng(lat, lng), 9);
}

function writeCookieLocation() {
  document.cookie = 'lastLocation='+escape(_Umap.getCenter().lat()+','+_Umap.getCenter().lng()+','+_Umap.getZoomLevel())+';expires=Wed, 01 Jan 2020 00:00:00 GMT';
}
function xbDetectBrowser(){
	//alert(window.navigator.appName);
	if(window.navigator.appName.toLowerCase().indexOf("microsoft") != -1) {
		return true;
	} else {
		return false;
	}
}