function Table(id)
{
this.id=id;
this.data=eval('data'+this.id); //数据对象
this.length=this.data.length; //总长度
this.listNum=5; //每页的条数
this.f=0;
this.l=this.length;
if (this.nowTab()) {this.f=this._;}
if (this.f+this.listNum<this.length){this.l=this.f+this.listNum};
}//表格的属性



Table.prototype=
{
init:function(){
$('.sort').mouseover(function(){$(this).css('background-color','#fffff0')});
$('.sort').mouseout(function(){$(this).css('background-color','#f0f2e9')});
this.creat();
},//初始化


nowTab:function(){
if (location.hash.length > 1){
var _tab=location.hash.substr(1).split(":");
this._=parseInt(_tab[0],10);
if (_tab[1]){
	if (_tab[1]==this.id){return true;}else{return false;}
}else
{	return true;}
}else{
return false;
}
},//当前Tab


creat:function(){
$('#table'+this.id+' .tList').html(Table.templates(this));
if (this.nowTab()) {this.tabUrl();}
this.createPageBar();
},//建立

firstPage:function(){
this.f=0;
var _p=this.f+this.listNum;
if (_p<this.length){this.l=_p}else{this.l=this.length};
this.creat();
},//第一页

previousPage:function(){
var _p=this.f-this.listNum;
if (_p>=0){this.f=_p;};
_p=this.f+this.listNum;
if (_p<this.length){this.l=_p}else{this.l=this.length};
this.tabUrl();
this.creat();
},//向前翻

nextPage:function()
{
var _p=this.f+this.listNum;
if (_p<this.length){this.f=_p;}
_p=this.f+this.listNum;
if (_p<this.length){this.l=_p}else{this.l=this.length};
this.tabUrl();
this.creat();
},//向后翻

lastPage:function(){
this.f=Math.floor(this.length/this.listNum)*this.listNum;
var _p=this.f+this.listNum;

if (_p<this.length){this.l=_p}else{this.l=this.length};
this.creat();
},//最后一页


tabUrl:function()
{
var _url='#'+this.f+':'+this.id;
$($('#dbTab a').get(this.id)).attr("href",_url);
location.replace(_url);
},//写 当前页和当前Tab;


createPageBar:function(){
var _this=this;
var _t='#table'+this.id+' .pages';
var _bar = ' <span>' + (this.f + 1) + ' - ' + this.l + ' of ' + this.length + '</span> ';
var _ft='&#171; 第一页';
var _f ='<a href="javascript:;" class="firs">'+_ft+'</a>';
var _pt='&#8249; 上一页 ';
var _p ='<a href="javascript:;" class="prev">'+_pt+'</a>';
var _nt='下一页 &#8250; ';
var _n ='<a href="javascript:;" class="next">'+_nt+'</a>';
var _lt='最后页 &#187; ';
var _l ='<a href="javascript:;" class="last">'+_lt+'</a>';
var _str='';
if (this.l<this.length)
{
_str= "&nbsp;"+ _bar +"&nbsp;" + _n  +"&nbsp;";
	if (this.f==0){	_str="&nbsp;"+ _pt  + _str +"&nbsp;";}else{	_str="&nbsp;"+ _p  + _str  +"&nbsp;";}
	}
	else
	{
	_str= "&nbsp;"+ _p + "&nbsp;"+ _bar +"&nbsp;" + _nt  +"&nbsp;";
	}
$(_t).html(_str);
//$('.firs',$(_t)).bind('click',function(){_this.firstPage();});
$('.prev',$(_t)).bind('click',function(){_this.previousPage();});
$('.next',$(_t)).bind('click',function(){_this.nextPage();});
//$('.last',$(_t)).bind('click',function(){_this.lastPage();});
}//建立页码

}//表格的方法

function creatTable(str){
var _x=str.split(",");
var e='';
for(i=0;i<_x.length;i++){
x=parseInt(_x[i],10)
e +=('d'+x+'=new Table('+x+');d'+x+'.init();');
}
eval(e);
}

function sTab(x,y,id,_this)
{
var _data=eval("data"+id);
if (_this.className=='asc')
{
	if (y)
	{
	_data.sort(function(a,b){
		ax=(a[x]==null)?0:a[x]-0; 
		bx=(b[x]==null)?0:b[x]-0;
		return 	bx-ax;
			});
	}
	else
	{
	_data.sort(function(a,b){return b[x].localeCompare(a[x]);});
	}
_this.className='desc';
}
else
{
	if (y)
	{
	_data.sort(function(a,b){
		ax=(a[x]==null)?0:a[x]-0; 
		bx=(b[x]==null)?0:b[x]-0;
		return 	ax-bx;
		});
	}
	else
	{
	_data.sort(function(a,b){return a[x].localeCompare(b[x]);});
	}
_this.className='asc';
}
eval ('d'+id+'.creat()');
}

function tabShow(num){
$('#dbTab li').each(function(){ $(this).removeClass() });
$($('#dbTab li').get(num)).addClass('selected');
$('.dbTable').each(function(){ $(this).css("display","none") });
$($('.dbTable').get(num)).css("display","block");
}


function init(){
if (location.hash.length > 1){
var _tab=location.hash.substr(1).split(":");

if (_tab[1])
{
tabShow(_tab[1]);
}
else
{
tabShow(0);
}
}
else
{
tabShow(0);
}
}

$(function() {

$('#dbTab li').click( function (){ var _num= $('#dbTab li').index(this); tabShow(_num);});

init();

});


//tips

function ge(z){return document.getElementById(z)}
function gE(z,y){return z.getElementsByTagName(y)}
function ce(z){return document.createElement(z)}
function de(z){z.parentNode.removeChild(z)}
function ct(z){return document.createTextNode(z)}
function rf(){return false}
function tb(){this.blur()}
function ac(z){var a=0,b=0;while(z){a+=z.offsetLeft;b+=z.offsetTop;z=z.offsetParent} return [a,b]}

var Browser = {
	ie:     !!(window.attachEvent && !window.opera),
	opera:  !!window.opera,
	safari: navigator.userAgent.indexOf('Safari') != -1,
	gecko:  navigator.userAgent.indexOf('Gecko') != -1 && navigator.userAgent.indexOf('KHTML') == -1
};
Browser.ie6 = Browser.ie && navigator.userAgent.indexOf('MSIE 6.0') != -1;
navigator.userAgent.match(/Gecko\/([0-9]+)/);
Browser.geckoVersion = parseInt(RegExp.$1) | 0;

/////////////////////////////////////////////////
var Get={
windowSize:function()
{
	var width = 0, height = 0;
	if(typeof window.innerWidth == 'number') //Non-IE
	{
		width = window.innerWidth;
		height = window.innerHeight;
	}
	else if(document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight))
  	{
		//IE 6+ in 'standards compliant mode'
		width = document.documentElement.clientWidth;
		height = document.documentElement.clientHeight;
	}
 	else if(document.body && (document.body.clientWidth || document.body.clientHeight))
	{
		//IE 4 compatible
		width = document.body.clientWidth;
		height = document.body.clientHeight;
	}
	return {w:width, h:height};
}
,

scroll:function()
{
	var x = 0, y = 0;
	if(typeof(window.pageYOffset) == 'number')
	{
		//Netscape compliant
		x = window.pageXOffset;
		y = window.pageYOffset;
	}
	else if(document.body && (document.body.scrollLeft || document.body.scrollTop))
	{
		//DOM compliant
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
	}
	else if(document.documentElement && (document.documentElement.scrollLeft || document.documentElement.scrollTop))
	{
		//IE6 standards compliant mode
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
	}
	return {x:x, y:y};
}
}




//////////////////////////////////////////////////////////
var Tooltip = {
	create: function(htmlTooltip)
	{
		var d = ce('div'), t = ce('table'), tb = ce('tbody'), tr = ce('tr'),  td = ce('td');
		d.className = 'tooltip';
		//th1.style.backgroundPosition = 'top right';
		//th2.style.backgroundPosition = 'bottom left';
		//th3.style.backgroundPosition = 'bottom right';

_html='<div class="b0 lt"><div class="b0 rt"><div class="bw0 tw"></div></div></div><div class="bh0 lh"><div class="bh0 rh"><div class="bm0" id="text"></div></div></div><div class="b0 lb"><div class="b0 rb"><div class="bw0 bw"></div></div></div>';
td.innerHTML=_html;

		if(htmlTooltip)
		ge("text").innerHTML = htmlTooltip;
		//td.id="text";
		tr.appendChild(td);
		//tr1.appendChild(th1);
		tb.appendChild(tr);
		//tr2.appendChild(th2);
		//tr2.appendChild(th3);
		//tb.appendChild(tr2);
		t.appendChild(tb);
		d.appendChild(t);
		return d;
	},

	fix: function(tooltip, noShrink, visible)
	{
	/*	var table = gE(tooltip, 'table')[0],
		    td = gE(table, 'td')[0],
		    c = td.childNodes;
		if(c.length >= 2 && c[0].nodeName == 'TABLE' && c[1].nodeName == 'TABLE')
		{
			
			var m;
			if(c[1].offsetWidth > 300)
				m = Math.max(300, c[0].offsetWidth) + 20;
			else
				m = Math.max(c[0].offsetWidth, c[1].offsetWidth) + 20;
			if(m > 20)
			{
				tooltip.style.width = m + 'px';
				c[0].style.width = c[1].style.width = '100%';

				if(!noShrink && tooltip.offsetHeight > document.body.clientHeight)
					table.className = 'shrink';
			}
		}
		*/
		if(visible)
			tooltip.style.visibility = 'visible';
	},

	fixSafe: function(p1, p2, p3)
	{
		if(Browser.ie)
			setTimeout(Tooltip.fix.bind(this, p1, p2, p3), 1);
		else
			Tooltip.fix(p1, p2, p3);
	},

	append: function(el, htmlTooltip)
	{
		var el = $(el);
		var tooltip = Tooltip.create(htmlTooltip);
		el.appendChild(tooltip);

		Tooltip.fixSafe(tooltip, 1, 1);
	},

	move: function(_this, tooltip, x, y, tow, toh, clip)
	{
		var _,
		    c = ac(_this),
		    left = c[0],
		    top  = c[1],
		    minx = 0,
		    miny = 0,
		    w1   = _this.offsetWidth  + x,
		    h1   = _this.offsetHeight + y,
		    windowSize = Get.windowSize(),
		    scroll = Get.scroll(),
		    bcw = windowSize.w,
		    bch = windowSize.h,
		    bsl = scroll.x,
		    bst = scroll.y;


		tooltip.style.width = tow + 'px';
		if(clip)
		{
			_ = ge(clip);
			if(_)
			{
				c = ac(_);
				minx = c[0];
				miny = c[1];

				if(_.offsetWidth + minx <= bsl + bcw)
					bcw = _.offsetWidth  + minx - bsl;

				if(_.offsetHeight + miny <= bst + bch)
					bch = _.offsetHeight + miny - bst;
			}
		}
		if(left + w1 + tow > bcw)
			left = Math.max(left - tow - x, minx);
		else
			left += w1;

		if(left < minx)
			left = minx;
		else if(left + tow > bsl + bcw)
			left = bsl + bcw - tow;

		if(top - toh - y > Math.max(bst, miny))
			top = top - toh - y;
		else
			top += h1;

		if(top < miny)
			top = miny;
		else if(top + toh > bst + bch)
			top = Math.max(bst, bst + bch - toh);
		tooltip.style.left = left + 'px';
		tooltip.style.top  = top  + 'px';
		tooltip.style.visibility = 'visible';
	},

	show: function(_this, text, x, y,spanClass)
	{
		var _;
		if(!Tooltip.tooltip)
		{
			_ = Tooltip.create();
			_.style.position = 'absolute';
			_.style.left = _.style.top = '-2323px';

			var lay = ge('layers');
			lay.appendChild(_);

			Tooltip.tooltip      = _;
			Tooltip.tooltipTable = gE(_, 'table')[0];
			Tooltip.tooltipTd    = gE(_, 'td')[0];
		}

		if(spanClass) text = '<span class="' + spanClass + '">' + text + '</span>';
		_ = Tooltip.tooltip;
		_.style.width = '500px';
		_.style.left = '-2323px';
		_.style.top  = '-2323px';




ge("text").innerHTML=text;

//		Tooltip.tooltipTd.innerHTML = _text;


		_.style.display = '';
		Tooltip.fix(_, 0, 0);
		Tooltip.move(_this, _, x, y, Tooltip.tooltipTable.offsetWidth, Tooltip.tooltipTable.offsetHeight, 'fixTooltip');
	},

	hide: function()
	{
		if(Tooltip.tooltip)
		{
			Tooltip.tooltip.style.display = 'none';
			Tooltip.tooltip.visibility = 'hidden';
			Tooltip.tooltipTable.className = '';
		}
	}
};
/////////////////////////////////////////

//nav


var Map=
{

	create:function(_id)
	{


	ge(_id).style.background="url(map/"+_zone+".jpg)";

	var html=[];
	var len=_coords.length;
	for (i=0;i<len;i++)
	{
html.push('<span class="p" style="top:'+_coords[i][1]+'%;left:'+_coords[i][0]+'%;" id="'+_coords[i][0]+' , '+_coords[i][1]+'" onmouseover="Map.show(this);"></span>');
	}

html.push('<span style="position: absolute; top:5px;left:5px;" class="glow">地图: '+_zonename+'<br/>');
if (_coords[0][0] >= 0)
{
html.push('坐标: <span id="coordinates">'+_coords[0][0]+' , '+_coords[0][1]+'</span>');
}
html.push('</span>');

	ge(_id).innerHTML=html.join("");


	},



	show:function(_this)
	{
	ge("coordinates").innerHTML=_this.id;
	}
}
