
String.prototype.trim = function(){
	return this.replace(/(^\s*)|(\s*$)/g, "");
}


var pointResultInfo = new Array();
var abcHelperSearchResultPoints = new Array();

var abcHelperData = "";


function $(){
	return document.getElementById(arguments[0]);
}


//////////////////////////////////////////////////////搜索处理///////////////////////////////////////////////////////

function abcHelperSearch(){
		//清空内存中的点
		pointResultInfo = new Array();
		abcHelperSearchResultPoints = new Array();
		var citycode = city.ctn2c($("soonjCity").value);
		if(citycode == "")citycode = "010";
		var keyword = $("abcHelperSearchKeyWord").value;//从abcSearchForm表单中获得
		if(keyword==""){
			alert("请输入搜索关键字！");
			return false;
		}
		var number = 9;
		try{
			//数据封装
			var sis = new MSISSearch();//自定义sis变量调用查询方法
			var searchpointpara = new MSearchPointPara();//自定义searchpointpara变量调用设置参数方法
			sis.setSISCallbackFunction(abcHelpKeywordCallBack); 
			//开始把得到的参数传入set方法中
			searchpointpara.setCitycode(citycode);
			searchpointpara.setKeyword(keyword);
			searchpointpara.setNumber(number);
			searchpointpara.setSrcType("bus:2 POI");
			sis.searchByKeyword(searchpointpara);
		}catch(err){
			alert(err.name + ":" + err.message);
		}
	}
	//搜索实现abcHelperSearch中sis注册的回调方法
	function abcHelpKeywordCallBack(data){
		if (data.count != 0) {
			var resultLen = data.poilist.length;

			for (var i = 0; i < resultLen; i++) {

				var x = data.poilist[i].x;
				var y = data.poilist[i].y;
				var sContent = "";

				var pointStyle = new MStyle();//调用MStyle设置TIP窗口样式
				pointStyle.lineColor = 0xFFFFFF;//lineColor：线条颜色，RGB颜色格式
				pointStyle.lineSize = 2;//lineSize：线条的宽度。单位是像素
				pointStyle.fillColor = 0x4b8bd9;//fillColor：填充颜色，RGB颜色格式
				pointStyle.fillOpacity = 80;//fillOpacity：填充的不透明度
				pointStyle.labelColor = 0xFFFFFF;//labelColor：tips的label文字颜色，RGB颜色格式
				pointStyle.leading = 2;//leading：文字行距

				//textContent：tip窗口的文本内容
				pointStyle.textContent = abcHelperPointInfoHandle(data.poilist[i]);
				var point = new MPointOverlay(new MLatLng(y,x),i+1,pointStyle,'abcHelperOverlay'+(i+1));
				abcHelperSearchResultPoints.push(point);
			}
			mapObj.drawPoints(abcHelperSearchResultPoints);
		} else {
			alert("对不起！此城市没有您要查找的关键字");
		}
	}


var pointResultInfo = new Array();

//内部实现，代码抽象，整理点上数据
function abcHelperPointInfoHandle(tempData){
	try{
		var type = tempData["type"];
		if (type == "" || type == "undefined" || type == null) {
			type = "暂无";
		}
		var address = tempData["address"];
		if (address == "" || address == "undefined" || address == null) {
			address = "暂无";
		}
		var tel = tempData["tel"];
		if (tel == "" || tel == "undefined" || tel == null) {
			tel = "暂无";
		}
		var name = tempData.name;
		var result ="";
		result += '<font color=\"#FFFFFF\">名称：' + name + '</font>';
		result += '<br /><font color=\"#FFFFFF\">类型：' + type + '</font>';
		result += '<br /><font color=\"#FFFFFF\">地址：' + address + '</font>';
		result += '<br /><font color=\"#FFFFFF\">电话：' + tel + '</font>';
		result += '<br /><a href="javascript:addToImportData(' + pointResultInfo.length
			+');"><font color=\"#FFFFFF\">保存到我的全能地图</font></a><br />';
		pointResultInfo.push(tempData["x"] + ";;" + tempData["y"] +  ";;" + name + ";;"
		   + address + ";;" + tel);
	}catch(err){
		alert(err.name +":"+ err.message);
	}
	return result;
}

function removeSearchPoint(){
	try{
		for(var i = 1;i < 10;i++){
			mapObj.removePointById("abcHelperOverlay" + i);
		}
	}catch(e){}
}

//////////////////////////////////////////////////////搜索处理///////////////////////////////////////////////////////



//////////////////////////////////////////////////////标注处理///////////////////////////////////////////////////////


var globalSid = 1;

function addToImportData(index){
	//组装字符串
	mapObj.removePointById("abcHelperOverlay" + (index + 1));
	var tempPointInfo = pointResultInfo[index];
	var tempArrHere = tempPointInfo.split(";;");
	var tempHere = '"imageContentArray":[],"coordX":"' + tempArrHere[0] +'","coordY":"'
							+ tempArrHere[1] +'","contents":"'+ tempArrHere[2] + '<br>' + tempArrHere[3] 
							+ '<br>' + tempArrHere[4]
							+'","icoUrl":"http://api.mapabc.com/fmp/v1.0/components/point/DynamicPoint/1.png"'
							+',"imageArray":[],"notStyleContent":"' + tempArrHere[2] + '<br>' + tempArrHere[3] 
							+ '<br>' + tempArrHere[4] + '","serialid":"'+ (globalSid++) + '","titles":"' + tempArrHere[2] 
							+ '","setTop":true,"gType":"pp_mc"';

	var resultHere = "";
	if(abcHelperData == "" || abcHelperData == "[]"){
		resultHere = "[{" + tempHere + "}]";
		abcHelperData = resultHere;
	} else {
		resultHere = abcHelperData.substring(0,abcHelperData.length - 1);
		resultHere = resultHere + ",{" + tempHere + "}]";
		abcHelperData = resultHere;
	}
	mapObj.importMapData(abcHelperData);
	addToDomTree(abcHelperData);
	//jsonHandle(abcHelperData);
}

function addToDomTree(data){
	try{
		var pointsHere = eval("(" + data + ")");
		var resultHtml = "	<ul class=\"second_right\">	<li class=\"right_title\">我的标点列表</li>";
		for(var i = 0;i< pointsHere.length;i++){
			resultHtml += "<li id=\"pointInfoHere" + ( i + 1 ) 
			+ "\"><span class=\"dotname\"><a href=\"javascript:void(0);\" onclick=\"mapObj.openTipById('"
			+ pointsHere[i]["serialid"] +"');\">"
			+ myTrim(pointsHere[i]["titles"])
			+"</a></span><span class=\"delete\"><a href=\"javascript:removeEditPoint(\'"
			+ pointsHere[i]["serialid"] +"\',\'pointInfoHere" + (i + 1) + "\');\">删除</a></span></li>";
		}
		resultHtml += "</ul>";
		$("showInfoHere").innerHTML = resultHtml;
	}catch(e){alert(e.name + ":" + e.message);}
}

function myTrim(str){
	return str.length > 15 ? str.substring(0,15) + "..." : str;
}

function removeEditPoint(id,domId){
	mapObj.removePointById(id);//删除标注
	mapObj.removePolylineById(id);
	mapObj.removePolygonById(id);
	var parentNode = $(domId).parentNode;
	parentNode.removeChild($(domId));//删除dom中元素
	removeElementFromDataById(id);
	//jsonHandle(abcHelperData);
}

function removeElementFromDataById(id){
	try{
		var tempArr = eval("(" + abcHelperData +")");
		var tempArr = removeElementFromArrayById(tempArr,id);
		abcHelperData = arrToString(tempArr);
	}catch(e){
		alert(e.name + ":" + e.message);
	}
}

function replaceAll(str){
	var resultHere = "";
	for(var i = 0;i<str.length;i++){
		if(str.charAt(i).toString().trim() == ""){
			resultHere += "<br>";
		}
		else resultHere += str.charAt(i);
	}
	return resultHere;
}

function removeElementFromArrayById(tempArr,id){
	var tempHere = new Array();
	var flag = false;
	for(var i = 0;i<tempArr.length;i++){
		var tempNotStyleContent = replaceAll(tempArr[i]["notStyleContent"]);
		tempArr[i]["contents"] = tempNotStyleContent;
		tempArr[i]["notStyleContent"] = tempNotStyleContent;
		if(tempArr[i]["serialid"] != id || flag){
			tempHere[tempHere.length] = tempArr[i];
		}else {
			flag = true;
			continue;
		}
	}
	return tempHere;
}

function arrToString(arr){
	if(arr.length == 0 ) return "";
	var result = "[";
	for(var i = 0;i< arr.length;i++){
		var singleResult = "{";
		for(var name in arr[i]){
			var nameType = (typeof arr[i][name]).toString().toLowerCase();
			if(nameType == "object" || nameType == "array"){
				var tempResult = "\"" + name + "\":[";
				var flagHere = false;
				for(var j = 0;j<arr[i][name].length;j++){
					flagHere = true;
					tempResult += "\"" + arr[i][name][j] + "\",";
				}
				if(flagHere)tempResult = tempResult.substring(0,tempResult.length - 1) + "]";
				else tempResult = tempResult + "]";
				singleResult += tempResult + ",";
			}else singleResult += "\"" + name + "\":\"" + arr[i][name] + "\",";
		}
		singleResult = singleResult.substring(0,singleResult.length - 1) + "},";
		result += singleResult;
	}
	if(result.length == 1)return "";
	else result = result.substring(0,result.length - 1) + "]";
	return result;
}

function addGeometry(type){
	var defaultStyle = new MStyle();
	defaultStyle.lineOpacity = "50";
	defaultStyle.lineColor = "0xFF0000";
	defaultStyle.lineSize = 5;
	defaultStyle.fillOpacity = 50;
	defaultStyle.fillColor = "0xFFFFFF";
	mapObj.addGeometry(type,defaultStyle);
}

function handleData(event){
 	mapObj.removeEventListener(MMap.EVENT_EXPORT_MAP_DATA,addUrlToData);
 	mapObj.addEventListener(MMap.EVENT_EXPORT_MAP_DATA,exportDataCallback);
	mapObj.exportMapData();
}
function exportDataPriHandle(event){
	var tempArgs = event.args;
	var tempMapId = tempArgs.split(",")[0];
	var tempData = tempArgs.replace(tempMapId+",","");
	abcHelperData = tempData;
	return tempData;
}

function exportDataCallback(event){
	var tempData = exportDataPriHandle(event);
	addToDomTree(tempData);
	//jsonHandle(tempData);
}


function getWidth(){
	var mapWidth = $("M_w").value;
	if(!soonjValid(mapWidth) || mapWidth == ""){
		alert("宽为非法数字！默认为700");
		return 700;
	}
	if(parseInt(mapWidth)<=0){
		alert("宽为不可以小于零！默认为700");
		return 700;
	}
	if(parseInt(mapWidth) <= 350){
		alert("地图过小可能造成显示体验不佳");
	}
	return mapWidth;
}

function getHeight(){
	var mapHeight = $("M_h").value;
	if(!soonjValid(mapHeight) || mapHeight == ""){
		alert("高为非法数字！默认为580");
		return 580;
	}
	if(parseInt(mapHeight) <= 0){
		alert("高为不可以小于零！默认为580");
		return 580;
	}
	if(parseInt(mapHeight) <= 290){
		alert("地图过小可能造成显示体验不佳");
	}
	return mapHeight;
}


function soonjValid(str){
	var len = str.length;
	var header = str.substring(0,1);
	if(header == "0")return false;
	var flagArr = ["1","2","3","4","5","6","7","8","9","0"];
	for(var i=0;i<len;i++){
		var tempStr = str.substring(i,i+1);
		for(var j=0;j<flagArr.length;j++){
			if(flagArr[j] == tempStr){
				break;
			}
			if(j==flagArr.length - 1 && flagArr[j] != tempStr){
				return false;
			}
		}
	}
	return true;
}

var mapURL = "";
function jsonHandle(str){
	if(str =="") return "";
	var obj = eval("(" + str + ")");
	var tempResult = "";
	var pc = 0;
	var lc = 0;
	var fc = 0;
	for(var i = 0;i<obj.length;i++){
		var tempObj = obj[i];
		var gType = tempObj["gType"];
		if(gType == "section_mc"){//线 线颜色、透明度、标题、内容点、坐标
			lc++;
			tempResult += "&llc" + lc +"=" + tempObj["lineColor"];
			tempResult += "&lls" + lc +"=" + tempObj["line_size"];
			tempResult += "&llo" + lc +"=" + tempObj["lineOpacity"];
			tempResult += "&lt" + lc +"=" + tempObj["titles"];
			tempResult += "&lnc" + lc +"=" + tempObj["notStyleContent"];
			tempResult += "&lp" + lc + "=" + tempObj["imageArray"];
			var x = handleCoor(tempObj["coordX"]);
			tempResult += "&lx" + lc + "=" + x;
			var y = handleCoor(tempObj["coordY"]);
			tempResult += "&ly" + lc + "=" + y;
		} else if(gType == "polygon_mc") {//面 边线颜色、边线透明度、填充色、填充透明度、标题、内容、坐标
			fc++;
			tempResult += "&flc" + fc +"=" + tempObj["lineColor"];
			tempResult += "&fls" + fc +"=" + tempObj["line_size"];
			tempResult += "&ffc" + fc +"=" + tempObj["fillColor"];
			tempResult += "&flo" + fc +"=" + tempObj["lineOpacity"];
			tempResult += "&ffo" + fc +"=" + tempObj["fillOpacity"];
			tempResult += "&ft" + fc +"=" + tempObj["titles"];
			tempResult += "&fnc" + fc +"=" + tempObj["notStyleContent"];			
			tempResult += "&fp" + fc + "=" + tempObj["imageArray"];
			var x = handleCoor(tempObj["coordX"]);
			tempResult += "&fx" + fc + "=" + x;
			var y = handleCoor(tempObj["coordY"]);
			tempResult += "&fy" + fc + "=" + y;
		} else {//点 点的图标、标题、内容、坐标
			pc++;
			tempResult += "&pt" + pc +"=" + tempObj["titles"];
			tempResult += "&pnc" + pc +"=" + tempObj["notStyleContent"];
			tempResult += "&px" + pc + "=" + tempObj["coordX"];
			tempResult += "&py" + pc + "=" + tempObj["coordY"];
			tempResult += "&pi" + pc + "=" + tempObj["icoUrl"].substring(61);
			tempResult += "&pp" + pc + "=" + tempObj["imageArray"];
		}
 	}
	tempResult = tempResult.replace("&","?");
	tempResult = encodeURI(tempResult);
	var mapWidth = getWidth();
	var mapHeight = getHeight();
	var center = mapObj.getCenterByLatLng();
	var cx = center.lng;
	var cy = center.lat;
	tempResult = tempResult + "&mapWidth=" + mapWidth + "&mapHeight=" + mapHeight + "&mc=" 
						+ cx + "," + cy + "&mz=" + mapObj.getZoomLevel() ;
	if(tempResult.length >= 2000){
		alert("url过长，将不能正常加载！\n当前url长度为 " + tempResult.length + " 个字符。");
		return "";
	}
	return tempResult;
}

function openRecentUrl(){
	window.open("http://www.mapabc.com/qnmap2/supermap.html" + jsonHandle(abcHelperData));
}

function getJSInfo(type){
	var resultHere = "";
	if(type == "utf8"){
		resultHere = "<script type=\"text/javascript\" src=\"http://www.mapabc.com/qnmap2/soonj/mapnews.js";
	}else resultHere = "<script type=\"text/javascript\" src=\"http://www.mapabc.com/qnmap2/soonj/mapnews_gb2312.js";
	resultHere += jsonHandle(abcHelperData);
	resultHere += "\"></script>";
	return resultHere;
}

function getIframeInfo(ifTraffic,menuInfo,cityName){
	var resultHere = "<iframe src=\"http://www.mapabc.com/qnmap2/supermap.html";
	if(arguments.length == 0)ifTraffic = false;
	var tempHere = jsonHandle(abcHelperData);
	resultHere += tempHere;
	if(tempHere == "")resultHere +=  "?traffic=" + ifTraffic + "&menuInfo=" + menuInfo + "&cityName=" + cityName;
	else resultHere +=  "&traffic="  + ifTraffic + "&menuInfo=" + menuInfo + "&cityName=" + cityName;
	resultHere += "\" width=\""+ getWidth() +"\" height=\""+ getHeight() +"\" frameborder=\"0\" scrolling=\"no\" marginheight=\"0\" marginwidth=\"0\"></iframe>";
	return resultHere;
}

function handleCoor(coordObj){
	var x = "";
	if(typeof coordObj == "string"){
		coordObj = coordObj.split(",");
	}
	for(var j = 0;j< coordObj.length;j++){
		x += coordObj[j] + ",";
	}
	return x.substring(0,x.length-1);
}

//////////////////////////////////////////////////////标注处理//////////////////////////////////////////////////////////


////////////////////////////////上传url处理/////////////////////////////////////////////////////////////

var recentClickId = "";
var recentGtype = "";


function openUploadWindow(gtype,serialId,uploadtype){
	$('addUrlDiv').style.display = 'block';
	$("uploadImgUrl").value = "";
	recentGtype = gtype;
	recentClickId = serialId;
}



function wantToAdd(){
	var tempArrHere = new Array();
	var imgUrl = $("uploadImgUrl").value.trim();
	if(imgUrl == ""){
		alert("图片地址不可为空！");
		return false;
	}
	if(checkimg(imgUrl)==1){
		alert("图片地址不合格！");
		return false;
	}
	tempArrHere.push(imgUrl);
	var tempDesHere = new Array();
	tempDesHere.push("");
	mapObj.submitPictureURL(recentGtype, recentClickId, tempArrHere, tempDesHere);
	mapObj.removeEventListener(MMap.EVENT_EXPORT_MAP_DATA,exportDataCallback);
	mapObj.addEventListener(MMap.EVENT_EXPORT_MAP_DATA,addUrlToData);
	mapObj.exportMapData();
}

function checkimg(n){
	if(n==""||n==" "||n==null){
		return "1";
	}else{
		var tempimgUrl = n.split(".");
		tempimgUrl = tempimgUrl[tempimgUrl.length-1];
			if(tempimgUrl=="gif"||tempimgUrl=="GIF"||tempimgUrl=="jpg"||tempimgUrl=="JPG"||tempimgUrl=="png"||tempimgUrl=="PNG"||tempimgUrl=="jpeg"||tempimgUrl=="JPEG"){
				return "0";
			}else{
				return "1";
			}
	}
}

function addUrlToData(event){
	abcHelperData = exportDataPriHandle(event);
	$('addUrlDiv').style.display = 'none';
}	


function abcHelperCopyToClipBoard(containerId){
	var clipBoardContent = document.getElementById(containerId).value;
	if(clipBoardContent == ""){
		alert("您要保存的内容为空!");
		return false;
	}
	if(window.clipboardData){
		if(clipBoardContent.length > 2000){
			alert("地址大于2000，将不能显示标注！\n您现在的地址长度为 " + abcHelperUrlAddress.length);
		}else{
			window.clipboardData.setData("Text",clipBoardContent);
			alert("url成功复制到粘贴板！");
		}
	}else{
		alert("该功能还不支持您的浏览器！");
	}
}


////////////////////////////////上传url处理/////////////////////////////////////////////////////////////


