﻿var addressingArgs = ['','',''];  // mapDiv、經度、緯度
var addressingURL = '/api/gisapi.jsp?function=addressing';
var createPoiDescValues = ['請填寫正確的店名或地標名稱', '請填寫正確的地址或是附近路口','標籤越正確清晰，其他玩家越容易找到您的地標喔',
													'介紹越詳細，越容易得到玩家的推薦唷','區域碼','電話號碼','請輸入相片位置之網址','請輸入此地標之相關網址'
													];
													
var UMapArray = new Object();
var ModifyMap ;


function focusCreatePoiField(elmId){
	var field = document.getElementById(elmId);
	var txt = field.value;
	var clearField = false;
	for(var i = 0;i<createPoiDescValues.length;i++){
		if(txt == createPoiDescValues[i]){
			clearField = true;
			break;
		}
	}
	if(clearField)
		field.value = '';
}

function setFieldValue(eid, v){
	var field = document.getElementById(eid);
	field.value = v;
	return false;
}

function changeFormAction(formId, formAction ){
	var formObject = document.getElementById(formId);
	formObject.action = formAction;
	return false;
}

// 換頁用
function toPage(formId,num){
	//alert('formId='+formId+',num='+num);
	var formObject = document.getElementById(formId);
	formObject.pagenum.value= num;
	sendForm(formId,'listDiv');
	//return false;
}

function openCommentDiv(divId){
  var div = document.getElementById(divId);
  div.style.display = 'block';
	//var detailDiv = document.getElementById('detailDiv');
	//detailDiv.scrollTop = detailDiv.scrollHeight;
	//location.href="#aaa";
	var comment = document.getElementById('poiDetail-comment-id');
	comment.focus();
	return false;
}
function hideCommentDiv(divId){
  var div = document.getElementById(divId);
	div.style.display = 'none';
	return false;
}


// 討論中用來回填相似地標的function
function setSimilarPoi(formId,poiId,poiName){
	var fo = document.getElementById(formId);
	var crpid = document.getElementById('comment_rel_poi_id');
	var crpname = document.getElementById('comment_rel_poi_name');
	crpid.value = poiId;
	crpname.value = poiName;
	//alm.getLayout('mainLayout').showPanel('detailDiv');
	closeDialog();
	return false;
}

function openMapDiv(mapDivId, lngId, latId ){
	//alert('open Map Div!')
	//var div = document.getElementById(mapDivId);
	//alert('get Map Div!')
	//div.style.display = 'block';
	initUMap(mapDivId,lngId,latId);
	var lng = document.getElementById(lngId).value;
	var lat = document.getElementById(latId).value;
	var coord = new ULatLng(parseFloat(lat),parseFloat(lng));
  ModifyMap.centerAndZoom(coord,9);
  //alert('center and zoom!!');
	return false;
}



// init UMAP function
function initUMap(mapDivId,lngId,latId){
	var mapDiv = document.getElementById(mapDivId);
	//alert('before new UMap!');
	ModifyMap = new UMap(mapDiv);
	//alert('new UMap!');
	ModifyMap.setControlType(U_FULL_CONTROL);
	//alert('set ContraolType!');
		//UMapArray[mapDivId].centerAndZoom(point, 9);
	ModifyMap.addListener('click', function(overlay,latLng) {
    if(latLng){
		  ModifyMap.clearOverlays();
			var mk = new UMarker(latLng);
			ModifyMap.addOverlay(mk);
			var lngF = document.getElementById(lngId);
			var latF = document.getElementById(latId);
			lngF.value=latLng.lng();
			latF.value=latLng.lat();
		}
   });
   //alert('add Listener!!');
}


// 主要用來管理createPOI modifyPOI的function
function createPoiMapPosition(formId,mapDivId,addrId,lngId,latId){
	var fo = document.getElementById(formId);
	var ra = fo.posType;
	var lng = document.getElementById(lngId);
	var lat = document.getElementById(latId);
	lng.readOnly = true;
	lat.readOnly = true;
	
	if(UMapArray[mapDivId]==null){
		initUMap(mapDivId,lngId,latId);
	}
	for(var i = 0;i< ra.length;i++){
		if(ra[i].checked){
			var posV = ra[i].value;
			if(posV =='auto' ){ //自動定位
				addressingArgs = [mapDivId,lngId,latId];  //在這裡把arg換掉！
				var addr = document.getElementById(addrId).value;
				var sUrl = addressingURL+"&addrs="+encodeURI(addr);
				var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl , addressingCallback, null); 
			}
			else if(posV == 'manual'){
				var lngField = document.getElementById(lngId);
  			var latField = document.getElementById(latId);
  			var lngV = parseFloat(lngField.value);
  			var latV = parseFloat(latField.value);
  			if( UMapArray[mapDivId]!=null && !isNaN(lngV) && !isNaN(latV)){
	  	  	var coord = new ULatLng(parseFloat(latV),parseFloat(lngV));
  		  	UMapArray[mapDivId].centerAndZoom(coord,9);
  			}
  			else{
  				addressingArgs = [mapDivId,lngId,latId];  //在這裡把arg換掉！
					var addr = document.getElementById(addrId).value;
					var sUrl = addressingURL+"&addrs="+encodeURI(addr);
					var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl , addressingCallback, null); 
  			}
			}
			else if(posV =='input' ){
				lng.readOnly = false;
				lat.readOnly = false;
				
			}
		}
	}
}

function getAddressingLatLng(addr){
	addressingArgs = ['','','fase'];
}

// 取得定址的callback function
var addressingCallback = 	
{ 
  success: function(o) {
  	var xml = o.responseXML;
  	var bis = xml.getElementsByTagName('RECORD');
  	for(var i=0;i<bis.length;i++){
  		var node = bis[i];  //一筆定址資料
  		var addr = gnv(node,'ADDRESS');
  		var lng = gnv(node,'LONGITUDE');
	 		var lat = gnv(node,'LATITUDE');
	 		var statusCode = gnv(node,'STATUS_CODE');
	 		var lngField = document.getElementById(addressingArgs[1]);
  		var latField = document.getElementById(addressingArgs[2]);
  		lngField.value=lng;
  		latField.value=lat;
  		if(statusCode == 'SUCCESS' ){
  			if(UMapArray[addressingArgs[0]]!=null){
  				var coord = new ULatLng(parseFloat(lat),parseFloat(lng));
  	  		UMapArray[addressingArgs[0]].centerAndZoom(coord,9);
  			}
  		}
  	}
  	
  }, 
  failure: function(o) {
  	alert('無法取得定址資料！');
  }, 
  argument: addressingArgs  
} 

// 用來get xml的tag中的資訊
function gnv(node,tagName){
	var cn = node.getElementsByTagName(tagName)[0].firstChild;
	if(cn==null)
		return "";
	else
		return cn.nodeValue;
}

// 檢查poiForm
function checkPoiForm( optype ){
	// 預設是true
	var b = new Boolean(1);
	var errMsg = '';
	var chkNameId = optype+'-poi-poiName';
	var chkAddressId = optype+'-poi-poiAddress';
	var chkTagId = optype+'-poi-poiTags';
	var chkCommentId = optype+'-poi-poiComment';
	var chkAreaCodeId = optype+'-poi-poiAreaCode';
	var chkPhoneId = optype+'-poi-poiPhone';
	var chkPhotoId = optype+'-poi-poiPhoto';
	var chkLinkId = optype+'-poi-poiLink';
	var chkLngId = optype+'-poi-poiLongitude';
	var chkLatId = optype+'-poi-poiLatitude';
	
	var poiName = document.getElementById(chkNameId).value;
	var poiAddress = document.getElementById(chkAddressId).value;
	var poiTags = document.getElementById(chkTagId).value;
	var poiComment = document.getElementById(chkCommentId).value;
	var poiAreaCode = document.getElementById(chkAreaCodeId).value;
	var poiPhone = document.getElementById(chkPhoneId).value;
	var poiPhoto = document.getElementById(chkPhotoId).value;
	var poiLink = document.getElementById(chkLinkId).value;
	var poiLng = document.getElementById(chkLngId).value;
	var poiLat = document.getElementById(chkLatId).value;
	if(poiName =='' || checkIfMatchDefaultDesc(poiName) ){
		errMsg += '請輸入正確地標名稱，不得為空白或系統說明文字！\n';
		b = new Boolean(0);
	}
	//if(poiAddress =='' || checkIfMatchDefaultDesc(poiAddress) ){
	//	errMsg += '請輸入地標地址或位置，不得為空白或系統說明文字！\n';
	//	b = new Boolean(0);
	//}
	if(poiTags =='' || checkIfMatchDefaultDesc(poiTags) ){
		errMsg += '請輸入地標標籤，不得為空白或系統說明文字！\n';
		b = new Boolean(0);
	}
	if(poiComment =='' || checkIfMatchDefaultDesc(poiComment) ){
		errMsg += '請輸入地標介紹，不得為空白或系統說明文字！\n';
		b = new Boolean(0);
	}
	if(!checkIfMatchDefaultDesc(poiAreaCode) && poiAreaCode!=''){
		if(!checkAreaCode(poiAreaCode)){
			errMsg += '電話區碼含非法字元，請輸入括號或數字！如：(02)或02\n';
			b = new Boolean(0);
		}
	}
	if(!checkIfMatchDefaultDesc(poiPhone) && poiPhone!=''){
		if(!checkPhoneNumber(poiPhone)){
			errMsg += '請輸入正確的電話號碼!\n';
			b = new Boolean(0);
		}
	}
	
	if(poiLng =='' || isNaN(poiLng) || parseFloat(poiLat)<= 0.0 ){
		errMsg += '請輸入正確的經度！\n';
		b = new Boolean(0);
	}
	if(poiLat =='' || isNaN(poiLat) || parseFloat(poiLat)<= 0.0 ){
		errMsg += '請輸入正確的緯度！\n';
		b = new Boolean(0);
	}
	if(errMsg!='')
		alert(errMsg);
	
	return b;
	
}


function checkIfMatchDefaultDesc( txt ){
	for(var i = 0;i<createPoiDescValues.length;i++){
		if(txt == createPoiDescValues[i]){
			return true;
		}
	}
	return false;
}

// 送出poiForm
function sendPoiForm(formId, optype, target){
	if( checkPoiForm(optype) == true )
	{ 
		if(target==null || target=='')
			return sendForm(formId);
		else
			return sendForm(formId,target);
	}
	else{
		return false;
	}
}

// 送出comment
function sendComment(formId){
	
	var fo = document.getElementById(formId);
	var c = fo.comment.value;
	if(c=='' || checkIfMatchDefaultDesc(c)){
		alert('評論不得為空白或系統說明文字！');
		return false;
	}
	else{
		return sendForm(formId,'detailDiv');
	}
}

function sendForward(formId){
	var fo = document.getElementById(formId);
	var emails = fo.emails;
	var members = fo.members;
	
	if( !emails.length && !members.length){
		if(emails.value=='' && members.value==''){
			alert('欲轉寄的Email、暱稱不得都為空值！');
			return false;
		}
		else{
			sendForm(formId,'dialog');
			return true;
		}
			
	}
	else{
		var b = new Boolean(0);
		if(emails.length){
			for(var i = 0;i<emails.length;i++){
				if(emails[i].value!='')
					b = new Boolean(1);
			}
		}
		else{
			if(emails.value!=''){
				b = new Boolean(1);
			}
		}
		if(members.length){
			for(var i = 0;i<members.length;i++){
				if(members[i].value!='')
					b = new Boolean(1);
			}
		}
		else{
			if(members.value!=''){
				b = new Boolean(1);
			}
		}
		if( b == true ){
			sendForm(formId,'dialog');
		}
		else
			alert('欲轉寄的Email、暱稱不得都為空值！');
			
		return b;
	}
	
}

function checkSimilarPoiName( nameId ){
	var pname = document.getElementById(nameId).value;
	var linkUrl = '/pms/listSimilarPoiAction.do?poiId=0&method=similar_name_poi&keyword='+pname+'&rows=1000';
	//openRightBox('相似地址',encodeURI(linkUrl) );
	showTT({url:linkUrl});
	return false;
}

function checkSimilarPoiAddress( addrId ){
	var paddr = document.getElementById(addrId).value;
	var linkUrl = '/pms/listSimilarPoiAction.do?poiId=0&method=similar_addr_poi&keyword='+paddr+'&rows=1000';
	//openRightBox('相同地址',encodeURI(linkUrl));
	showTT({url:linkUrl});
	return false;
	
}

// 增加轉寄的欄位
function addMoreForward( parentNode, fieldName){
	var tr1Element = document.createElement("tr");
	var td2Element = document.createElement("td");
	var input1 = document.createElement("input");
  input1.name = fieldName;
	
	parentNode.appendChild(tr1Element);
  tr1Element.appendChild(td2Element);
  td2Element.appendChild(input1);
}

function checkAreaCode( txt ){
	var filter=/[\(]?[0][0-9]{1,2}[\)]?/i;
	if (filter.test(txt)) {
		  //alert('true');
		  return true;
	}
  else {
  	//alert('false');
  	 return false;
  }
}

function checkPhoneNumber( txt ){
	var filter=/[0-9]{6,10}/i;
	if (filter.test(txt)) {
		//alert('true');
		  return true;
	}
  else {
  	//alert('false');
  	 return false;
  }
}

function genPmsPoiLink( poiId,poiName,poiLink ){
	var backFunction = 'addNewTab(\'poi-detail-'+poiId+'\',\'地標-'+poiName+'\',\'/pms/loadPoiAction.do?id='+poiId+'&mode=detail&forward=detail\')';
	var div = U.gi('detailDiv');
	div.innerHTML = '<table width="100%" ><tr><td width="15%">地標</td><td width="80%"><b>'+poiName
	+	'</b></td></tr>'
	+'<tr><td>連結</td><td><textarea id="urlTA" rows="5" cols="33" style="font-size:13px;">'+ poiLink+'</textarea>'
	+'</td></tr>'
	+'<tr><td colspan="2"><input type="button" value="選取連結文字" style="font-size:12px;" onclick="document.getElementById(\'urlTA\').select();"></td><tr>'
	+'<tr><td colspan="2">&nbsp;</td><tr>'
	+'<tr><td colspan="2"><input type="button" value="回到詳細頁面" style="font-size:12px;" onclick="'+backFunction+';"></td><tr>'
	+'</table>';
	alm.getLayout('mainLayout').showPanel('detailDiv');
	return false;
}

