﻿/// <reference path="jquery-1.2.3-intellisense.js" />
var ClassID=parseInt(requestQueryString("MapID"))||526;
var MarkID=parseInt(requestQueryString("MarkID"))||0;
var CategoryID=parseInt(requestQueryString("CategoryID"))||0;
var keywordOther=requestQueryString("keyword")||"";
var CategoryID_=0;
var Deepth_=1;
var tree,tree_=false;
var mapLoad=false,treeLoad=false;
var sNodes=null;
var KeyWord;
var pageRecord=15;
var sAll=false,sIcon=true,sTree=false,sSearch=false;
var spage=1;
var map,showed=false,toMark;
var mapH,mapW;

function reSize()
{
    mapH=document.documentElement.clientHeight;
    mapW=document.documentElement.clientWidth;
    if($.browser.opera)
    {
		mapH = self.innerHeight;
		mapW = self.innerWidth;
    }
    mapH-=127;
    $("#MapBox").css({height:mapH,width:mapW});
    if(showed)
    {
        map.mapBoxW=mapW;
        map.mapBoxH=mapH;
        map.reSize();
    }
}
reSize();
window.onresize=reSize;

$("#categoryList").jqDrag("#categoryTitle1");
$("#categoryList").jqDrag("#categoryTitle2");

//窗口最小最大化
function showHidContant(t,c)
{
    $("#"+c).toggle("fast",function(){$(t).toggleClass("max")});
}

//树分类显示标注
function ReDrawMapPoint(e)
{
	sAll=false,sIcon=false,sTree=true,sSearch=false;
	DrawMarks_(e.data.id,e.data.deepth);
}
//图标分类显示标注
function IconMarks(CID,MID)
{
	sAll=false,sIcon=true,sTree=false,sSearch=false;
	showMarks(CID,MID)
}
//搜索地图
function searchMarks()
{
	sAll=false,sIcon=false,sTree=false,sSearch=true;
	sNodes=null;
	spage=1;
	KeyWord=$("#KeyWord").val();
	if(KeyWord=="")
	{
		alert("请输入关健字！");
		return;
	}
	KeyWord=encodeURI(KeyWord);
	ShowMarkList(0,0,KeyWord);
}

if(keywordOther !="" )
{
    sAll=false,sIcon=false,sTree=false,sSearch=true;
	sNodes=null;
	spage=1;
    $("#KeyWord").val(keywordOther);
    KeyWord = encodeURI(keywordOther);
    ShowMarkList(0,0,KeyWord);
}

function searchDetails()
{
	var an=new Array();
	for(var j=0;j<sNodes.length;j++)
	{
		if($(sNodes[j]).attr("id")==toMark.id)
		{
			an.push(sNodes[j]);
			map.Nodes=an;
			map.drawPoint();
			MoveTo(toMark.id,toMark.currentLevel,toMark.px,toMark.py,toMark.classID,toMark.markImgClassID);
		}
	}
}

function DrawMarks_(CategoryID,deepth)
{
	$("#ccc2").html(($("#img"+tree.Cf.treeID+CategoryID).parent().find("a").html()));
    CategoryID_=CategoryID;
    Deepth_=deepth;
	ShowMarkList(0,0);
	MapMarksUrl="GetMapMarks.ashx?ClassID="+ClassID+"&CategoryID="+CategoryID+"&Deepth="+deepth;
	$.ajax({
		url:MapMarksUrl,
		type:"GET",
		cache:true,
		success:function(obj){map.Nodes=$("item",obj);map.drawPoint();}
	});
}

function showMarks(ClassID,MarkImgClassID)
{
	map.markImgClassID=MarkImgClassID;
	map.classID=ClassID;
	ShowMarkList(MarkImgClassID,ClassID);

	MapMarksUrl="GetMapMarks.ashx?ClassID="+ClassID+"&MarkImgClassID="+MarkImgClassID;
	$.get(MapMarksUrl+"&"+$.cookie("updated"),function(obj){
		map.Nodes=$("item",obj);map.drawPoint();
	});
}
function showAllMarks(ClassID)
{
	sAll=true,sIcon=false,sTree=false,sSearch=false;
	ShowMarkList(0,ClassID);
	$.get("GetMapMarks.ashx?ClassID="+ClassID+"&"+$.cookie("updated"),function(obj){
		map.Nodes=$("item",obj);map.drawPoint();
	});
}

var pageInfor=null;
function ShowMarkList(id,ClassID,KeyWord)
{
	pg = new showPages('pg');
	pg.pageCount=1;
	$("#boxBox").slideDown();
	$("#boxContent").html("载入中……");
	$("#boxTitle").html("标注列表");

	var url="";
	if(sSearch)
	{
		url="GetMapMarksList.ashx?KeyWord="+KeyWord+"&CurrentPage="+spage+"&pagerecordcount="+pageRecord;
	}
	if(sTree)	url="GetMapMarksList.ashx?CategoryID="+CategoryID_+"&Deepth="+Deepth_+"&CurrentPage=1&pagerecordcount="+pageRecord;
	if(sAll)	url="GetMapMarksList.ashx?ClassID="+ClassID+"&CurrentPage=1&pagerecordcount="+pageRecord;
	if(sIcon)	url="GetMapMarksList.ashx?MarkImgClassID="+id+"&CurrentPage=1&pagerecordcount="+pageRecord;

	$.get(url+"&"+$.cookie("updated"),function(obj){
		var nodes=$("item",obj);
		pageInfor=$("page",obj);
		if(nodes.length<=0){$("#boxBox").slideUp();}
		WriteList(nodes);
		pg.pageCount =Math.ceil(parseInt($(pageInfor[0]).attr("RecordCount"))/pageRecord);
		pg.page=1;
		if(sSearch) pg.page=spage;
		pg.callBack="ToPages(arg,"+id+",'"+KeyWord+"')";
		pg.pageBox="boxPage";
		$("#boxPage").html(pg.printHtml(1));
	});
}
function ToPages(page,id,KeyWord)
{
	$("#boxContent").html("载入中……");
	var url="";
	if(sSearch)	url="GetMapMarksList.ashx?KeyWord="+KeyWord+"&CurrentPage="+page+"&pagerecordcount="+pageRecord;
	if(sTree)	url="GetMapMarksList.ashx?CategoryID="+CategoryID_+"&Deepth="+Deepth_+"&CurrentPage="+page+"&pagerecordcount="+pageRecord;
	if(sAll)	url="GetMapMarksList.ashx?ClassID="+ClassID+"&CurrentPage="+page+"&pagerecordcount="+pageRecord;
	if(sIcon)	url="GetMapMarksList.ashx?MarkImgClassID="+id+"&ClassID="+ClassID+"&CurrentPage="+page+"&pagerecordcount="+pageRecord;
	$.get(url,function(obj){
		var nodes=$("item",obj);
		WriteList(nodes);
		pg.pageCount =Math.ceil(parseInt($(pageInfor[0]).attr("RecordCount"))/pageRecord);
	});
	if(sSearch)
	{
		var MapMarksUrl="GetMapMarks.ashx?KeyWord="+KeyWord+"&currentpage="+page+"&PageRecordCount="+pageRecord;
		$.ajax({
			url:MapMarksUrl,
			type:"GET",
			cache:true,
			success:function(obj){sNodes=$("item",obj);spage=page;}
		});
	}
}
function WriteList(nodes)
{
	var str=new Array();
	str.push("<div style=\"width:98%;\">");
	var sss = "";
	for(var i=0;i<nodes.length;i++)
	{
		if(i==0) sss = "MoveToMark("+$(nodes[i]).attr("id")+","+$(nodes[i]).attr("cLevel")+","+$(nodes[i]).attr("pX")+","+$(nodes[i]).attr("pY")+","+$(nodes[i]).attr("classID")+","+$(nodes[i]).attr("markImgClassID")+")";
		str.push("<div style=\"width:500px;line-height:18px;\"><a style=\"color:#333;\" href=\"javascript:MoveToMark("+$(nodes[i]).attr("id")+","+$(nodes[i]).attr("cLevel")+","+$(nodes[i]).attr("pX")+","+$(nodes[i]).attr("pY")+","+$(nodes[i]).attr("classID")+","+$(nodes[i]).attr("markImgClassID")+")\" title=\""+$(nodes[i]).attr("address")+"\">·"+$(nodes[i]).attr("sName")+"</a> <span style=\"color:#999;margin-left:5px;\">"+($(nodes[i]).attr("address")||"")+"</span></div>");
	}
	str.push("</div>");
	$("#boxContent").html(str.join(""));
	if(sTree) eval(sss);
}

tree=new YTree("categoryTree_1","Category.ashx","ReDrawMapPoint","script/tree/images2/","","","MapID="+ClassID);

function showMap(CID,t)
{
	ClassID=CID
	$("#MapBox").block("地图载入中……");
	$("#ccc2").html("区域分类");
	
	//地图按钮
	var tgt = t||g("Map"+ClassID);
	$(tgt).parent().children().each(function(e,o){
		var obj = $(o);
		if(obj.attr("id")=="Map"+ClassID)
		{
			obj.removeClass("bt").addClass("bts");
			obj.children().children().children().each(function(ee,oo){
				switch(ee)
				{
					case 0:$(oo).removeClass("btl").addClass("btls");break;
					case 1:$("#categoryTitle2").html("地图搜索--<span style='color:red;'>"+$(oo).html()+"</span>");break;
					case 2:$(oo).removeClass("btr").addClass("btrs");break;
				}
			});
		}
		else
		{
			obj.removeClass("bts").addClass("bt");
			obj.children().children().children().each(function(ee,oo){
				switch(ee)
				{
					case 0:$(oo).removeClass("btls").addClass("btl");break;
					case 2:$(oo).removeClass("btrs").addClass("btr");break;
				}
			});
		}
	});
	
	//树分类
	if(!tree_)
	{
		tree.Cf.callFunction="showTab(g(\"ccc1\"));tree.Cf.callFunction='';";
		if(ClassID==461)tree.Cf.callFunction="showTab(g(\"ccc2\"));tree.Cf.callFunction='';";
		tree.DrawNode();
		tree_=true;
	}
	else
	{
		tree.Cf.w="MapID="+CID;
		tree.Cf.callFunction="";
		tree.reload();
	}
	//地图显示
	$.get("GetMapInfor.ashx?ClassID="+CID+"&"+$.cookie("updated"),function(obj){
		var nodes=$("item",obj);
		var px=parseInt($(nodes[0]).attr("px"));
		var py=parseInt($(nodes[0]).attr("py"));
		var zLevel=parseInt($(nodes[0]).attr("zLevel"));
		var folder=$(nodes[0]).attr("folder");
		var imgSize=parseInt($(nodes[0]).attr("imgSize"));
		var levelScal = $(nodes[0]).attr("levelScal");
		var levelOffset = $(nodes[0]).attr("levelOffset");

		if(!map)map= new ykMap(this,px,py);

		map.ControlLeft=0;
		map.zoomLevel=zLevel;
		map.preZoomLevel=zLevel;
		map.imgFolder="mymap/"+folder+"/";
		map.positionX=px;
		map.positionY=py;
		map.classID=CID;
		map.showDetailsMark="";
		map.Nodes=null;
		
		map.scalArray=eval("new Array("+levelScal+")");
		map.offsetLevel=eval("new Array("+levelOffset+")");

		if(showed==false)
		{
			showed=true;
			map.mapBoxW=mapW;
			map.mapBoxH=mapH;
			map.imgW=imgSize;
			map.imgH=imgSize;
			if(MarkID==0)
			{
				map.showMap();
				mapLoad=true;
				if(treeLoad && mapLoad) clickCategory();
			}
			
			if(MarkID!=0)
			{
				MapMarksUrl="GetMapMarks.ashx?ID="+MarkID;
				$.ajax({
					url:MapMarksUrl,
					type:"GET",
					cache:true,
					success:function(obj){
						sNodes=$("item",obj);
						if(sNodes.length>0)
						{
							map.zoomLevel=parseInt($(sNodes[0]).attr("cLevel"));
							map.preZoomLevel=parseInt($(sNodes[0]).attr("cLevel"));
							toMark = {id:$(sNodes[0]).attr("id"),currentLevel:$(sNodes[0]).attr("cLevel"),px:$(sNodes[0]).attr("pX"),py:$(sNodes[0]).attr("pY"),classID:ClassID,markImgClassID:$(sNodes[0]).attr("MarkImgClassID")};
							map.showMap();
							/*
							if(ClassID=461)
							{
								$.ajax({
									url:"GetCountryMarks.ashx",
									success:function(o){
										map.Nodes = $("item",o);
										map.showMap();
									}
								});
							}
							*/
							mapLoad=true;
							window.setTimeout("searchDetails()",400);
						}
						else
						{
							alert("没有在地图上标注！");
						}
					},
					error:function(obj){alert(obj)}
				});
			}
		}
		else
		{
			map.imgW=imgSize;
			map.imgH=imgSize;
			map.positionX=map.positionX-map.offsetLevel[map.zoomLevel][0];
			map.positionY=map.positionY-map.offsetLevel[map.zoomLevel][1];
			map.Control.setZoom(zLevel);
			map.setZoomLevel(zLevel);
		}
		
		$("#MapBox").unblock();

		if(sSearch)
		{
			if(sNodes==null)
			{
				MapMarksUrl="GetMapMarks.ashx?KeyWord="+KeyWord+"&currentpage=1&PageRecordCount="+pageRecord;
				$.ajax({
					url:MapMarksUrl,
					type:"GET",
					cache:true,
					success:function(obj){sNodes=$("item",obj);searchDetails();ShowMarkList(0,0,KeyWord);},
					error:function(obj){alert(obj)}
				});
			}
			else
			{
				searchDetails();ShowMarkList(0,0,KeyWord);
			}
		}
		
		$.get("GetMapMarkClass.ashx?ClassID="+CID,function(obj){
			var nodes=$("item",obj);
			if(nodes.length>0)
			{
				var menuStr=new Array();
				for(var i=0;i<nodes.length;i++)
				{
					menuStr.push("<div style='float:left;width:83px;height:23px;margin-left:2px;'><div style='float:left;width:23px;height:auto;'><a href=\"javascript:IconMarks("+CID+","+$(nodes[i]).attr("id")+")\"><img onload='if(this.width>20) this.width=20;if(this.height>15) this.height=15;' src='mymap/marks/"+$(nodes[i]).attr("menuImg")+"' /></a></div><div style='float:left;width:auto;height:auto;margin-top:2px;'><a href=\"javascript:IconMarks("+CID+","+$(nodes[i]).attr("id")+")\">"+$(nodes[i]).attr("cName")+"</a></div></div>");
				}
				g("CategoryIcon").innerHTML=menuStr.join("");
			}
			else
			{
				//if(!sSearch)showAllMarks(CID);
				g("CategoryIcon").innerHTML="";
				//showHide('CategoryTree','CategoryIcon','tab1');
				
			}
		});							
	});
}

function searchDetails()
{
	var an=new Array();
	if(!toMark) return;
	for(var j=0;j<sNodes.length;j++)
	{
		if($(sNodes[j]).attr("id")==toMark.id)
		{
			an.push(sNodes[j]);
			//if(ClassID!=461)
			map.Nodes=an;
			map.drawPoint();
			MoveTo(toMark.id,toMark.currentLevel,toMark.px,toMark.py,toMark.classID,toMark.markImgClassID);
		}
	}
}

function MoveToMark(id,currentLevel,px,py,classID,markImgClassID)
{
	toMark = {id:id,currentLevel:currentLevel,px:px,py:py,classID:classID,markImgClassID:markImgClassID};
	if(map.classID!=classID)
	{
		showMap(classID);
		return;
	}
	if(sSearch){
		if(sNodes == null)
		{
			MapMarksUrl="GetMapMarks.ashx?KeyWord="+KeyWord+"&currentpage=1&PageRecordCount="+pageRecord;
			$.ajax({
				url:MapMarksUrl,
				type:"GET",
				cache:true,
				success:function(obj){sNodes=$("item",obj);searchDetails()},
				error:function(obj){alert(obj.responseText)}
			});
		}
		else
		{
			searchDetails();
		}
		return;
	}
	MoveTo(id,currentLevel,px,py,classID,markImgClassID);
}

function MoveTo(id,currentLevel,px,py,classID,markImgClassID)
{
	map.showDetailsMark="mark_"+id;
	px=px-map.offsetLevel[currentLevel][0];
	py=py-map.offsetLevel[currentLevel][1];
	//px+=200;
	py-=110;
	if(map.zoomLevel==currentLevel && Math.abs(px-map.positionX) < 500 && Math.abs(py-map.positionY) <500)
	{
		map.moveTo(px,py);
	}
	else
	{
		map.positionX=px;
		map.positionY=py;
		map.preZoomLevel=currentLevel;
		map.zoomLevel=currentLevel;
		map.Control.setZoom(currentLevel);
		map.setZoomLevel(currentLevel);
	}
}
function clickCategory()
{
	treeLoad=false;
	mapLoad=false;
	$("#img"+tree.Cf.treeID+CategoryID).parent().find("a").trigger("click");
}
function showTab(t)
{
	treeLoad=true;
	if(treeLoad && mapLoad) clickCategory();
	var obj = $(t);
	obj.parent().children().each(function(e,o){
		
		if(obj.attr("to")==$(o).attr("to"))
		{
			$(o).removeClass("searchTab2").addClass("searchTab1");
		}
		else
		{
			$(o).removeClass("searchTab1").addClass("searchTab2");
		}
	});
	$("div[class=bzCategory]").each(function(e,o){
		var ob = $(o);
		if(ob.attr("id")==obj.attr("to")) ob.show(); else ob.hide();
	});
}

showMap(ClassID);
