﻿/*浏览器判断*/
var Browser={};
Browser.isMozilla = (typeof document.implementation != 'undefined') && (typeof document.implementation.createDocument != 'undefined') && (typeof HTMLDocument!='undefined');
Browser.isIE = window.ActiveXObject ? true : false;
Browser.isFirefox = (navigator.userAgent.toLowerCase().indexOf("firefox")!=-1);
Browser.isSafari = (navigator.userAgent.toLowerCase().indexOf("safari")!=-1);
Browser.isOpera = (navigator.userAgent.toLowerCase().indexOf("opera")!=-1);
version=0;
if(Browser.isIE){
	temp=navigator.appVersion.split("MSIE");
	Browser.isshit=(parseFloat(temp[1])<7)?true:false;
};

/*Ajax核心模块前置部分开始*/
/*设置cookie*/
var cookies={};
cookies.set=function(name, value, expires, path, domain, secure) {
	var curcookie = name + "=" + escape(value) + ((expires) ? "; expires=" + expires.toGMTString() : "") + ((!!path) ? "; path=/" + path + "/" : "; path=/")  + ((domain) ? "; domain=" + domain : "") + ((secure) ? "; secure" : "");
	if ((name + "=" + escape(value)).length <= 4000) document.cookie = curcookie;
	else if (confirm("Cookie exceeds 4KB and will be cut!")) document.cookie = curcookie;
};
/*取出cookie*/
cookies.get=function(name) {
	var prefix = name + "=";
	var cookieStartIndex = document.cookie.indexOf(prefix);
	if (cookieStartIndex == -1) return null;
	var cookieEndIndex = document.cookie.indexOf(";", cookieStartIndex + prefix.length);
	if (cookieEndIndex == -1) cookieEndIndex = document.cookie.length;
	return unescape(document.cookie.substring(cookieStartIndex + prefix.length, cookieEndIndex));
};
/*清除cookie*/
cookies.del=function(name, path, domain) {
	if (cookies.get(name)) {
		document.cookie = name + "=" + ((!!path) ? "; path=/" + path + "/" : "; path=/") + ((domain) ? "; domain=" + domain : "") + "; expires=Thu, 01-Jan-70 00:00:01 GMT";
	};
};
/*事件控制*/
var Tobj = new Object();
Tobj.addEvent = function( obj, type, fn ) {
	if ( obj.attachEvent ) {		
		obj['e'+type+fn] = fn;
		obj[type+fn] = function(){obj['e'+type+fn]( window.event );};
		obj.attachEvent( 'on'+type, obj[type+fn] );
	} else {
		obj.addEventListener( type, fn, false );
	};
};
/*页面onload执行*/
Tobj.addEvent(window,"load",onloadaction);
function onloadaction() {
	externallinks();
};
var analytics={};
analytics.Succ=function(){
	var pageTracker = _gat._getTracker("UA-778114-3");
	pageTracker._trackPageview();
};
/*设置地图*/
function setmap() {
	if (!document.getElementsByTagName) return; 
	var anchors = document.getElementsByTagName("address");
	for (var i=0; i<anchors.length; i++) {
		var anchor = anchors[i];
		anchor.onclick=function(){
			var thisid=String(getTextByClassName(this,"type"));
			if (Browser.isIE) var anchormaps=this.nextSibling;
			else var anchormaps=this.nextSibling.nextSibling; 
			if (anchormaps.style.display=="none"){
				if (Browser.isIE) var geo=anchormaps.nextSibling;
				else var geo=anchormaps.nextSibling.nextSibling;
				var thislat=Number(getTextByClassName(geo,"latitude"));
				var thislon=Number(getTextByClassName(geo,"longitude"));
				var thislz=Number(getTextByClassName(geo,"lz"));
				anchormaps.style.display="block";
				if (GBrowserIsCompatible()) {
					var map = new GMap2(anchormaps);
					map.addControl(new GSmallMapControl());
					map.addControl(new GMapTypeControl());
					if(geo){
						geo.style.display=anchormaps.style.display;
						GEvent.addListener(map, "moveend", function() {
							var center = map.getCenter();
							var latLngStr = '<strong>Latitude &amp; Longitude：</strong><span class="latitude">' + center.y + '</span>，<span class="longitude">' + center.x + '</span><br /><strong>Zoom：</strong><span class="lz">'+ map.getZoom() + '</span>';
							geo.innerHTML = latLngStr;
						});
					};
					map.setCenter(new GLatLng(thislat,thislon), thislz, G_HYBRID_MAP);
					var thisname=thisid.toUC();
					var thishtml='<small><strong>'+thisname+' Address</strong><br />'+getTextByClassName(this,"post-office-box")+","+getTextByClassName(this,"locality")+"<br />"+getTextByClassName(this,"street-address")+"<br />"+getTextByClassName(this,"extended-address")+'</small>';
					map.openInfoWindowHtml(map.getCenter(), thishtml);
				};
			}else{
				anchormaps.style.display="none";
			};
		};
	};
} ;
/*Ajax核心模块开始*/
/*变换连接为新弹出窗口*/
function externallinks() {
	if (!document.getElementsByTagName) return; 
	var anchors = document.getElementsByTagName("a"); 
	for (var i=0; i<anchors.length; i++) { 
		var anchor = anchors[i]; 
		if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "external" ||	anchor.getAttribute("rel") == "license")) anchor.target = "_blank"; 
		if (anchor.className == "tips"){
			var elem = document.createElement("span");
			elem.innerHTML =anchor.title;
			anchor.appendChild(elem);
		};
	};
};
/*字符串型转换日期型*/
function strtodate(time){
	var Datearr = time.split("T");
	var sDate=Datearr[0];
	if (!!Datearr[1]){
		var timearr=Datearr[1].split(":");
		var sTime=timearr[0]+":"+timearr[1];
		return sDate+" "+sTime;
	}else if(!Datearr[1]){
		return sDate;
	};
};
/*获得当前UTC时间*/
function UTCTime(){
   var d, s = "";
   var c = ":";
   d = new Date();
   s += d.getUTCHours() + c;
   s += d.getUTCMinutes() + c;
   s += d.getUTCSeconds() + c;
   s += d.getUTCMilliseconds();
   return(s);
};
/*重置时间*/
function fixDate(date) {
	var base = new Date(0);
	var skew = base.getTime();
	if (skew > 0) date.setTime(date.getTime() - skew);
};
/*代码显示转换*/
function codechange() {
	if (!document.getElementsByTagName) return; 
	var codes = document.getElementsByTagName("code");
	for (var i=0; i<codes.length; i++) {
		var code = codes[i];
		var codehtml = code.innerHTML;
		codehtml = codehtml.replace(/[\t\n\r]/g,"");
		if(Browser.isIE){
			var codelinearr = codehtml.split("<BR>");
		}else{
			var codelinearr = codehtml.split("<br>");
		};
		var codenewhtml = "<ol>";
		for (var j=0; j<codelinearr.length-1; j++) {
			codenewhtml += "<li>"+codelinearr[j]+"</li>";
		};
		codenewhtml +="</ol>";
		code.innerHTML=codenewhtml;
	};
};
/*取类名当中内容*/
function getTextByClassName(obj,cName){
	var str = obj.innerHTML;
	if (Browser.isIE) var re = new RegExp("<\\w[^>]+class="+cName+"[^>]*>(.*?)<\\/\\w[^>]*>","ig");
	else var re = new RegExp('<\\w[^>]+class="'+cName+'"[^>]*>(.*?)<\\/\\w[^>]*>',"ig");
	var arrReturn = [];
	while ((arr = re.exec(str)) != null) arrReturn.push(arr[1]);
	return arrReturn;
};
/*获取他全家*/
function get(uri, data_callback, error_callback, timeout, type) {
	var tryAgain = function () {
		get(uri, data_callback, error_callback, timeout);
	};
	var r = new XMLHttpRequest();
	var timer = setTimeout(
		function() {
			r.abort();
			r.onreadystatechange = null;
			setTimeout(tryAgain, timeout);
		},
		timeout);
	r.open("GET", uri, true);
	r.onreadystatechange = function() {
		if (r.readyState != 4) {
			return;
		};
		clearTimeout(timer);
		if (r.status==200 || r.status==0 ) {
			if (type=="Text") data_callback(r.responseText);
			else data_callback(r.responseXML);
		} else if (r.status==304) {
		} else if (r.status >= 400 && r.status < 500) {
			error_callback(r);
		} else if (r.status >= 500 && r.status < 600) {
			setTimeout(tryAgain, timeout);
		} else {
			error_callback(r);
		};
	};
	r.send(null);
	return r;
};
/*获取js*/
function jsget(tname,turl,tkey){
	var s = document.createElement("script");
	document.getElementsByTagName("body")[0].appendChild(s);
	s.type="text/javascript";
	var keys = tname.split(".");
    var obj = window;
    for(var i = 0; i < keys.length; i++) obj=obj[keys[i]];
	if(!Browser.isIE){
		if (!tkey){
			Tobj.addEvent(s,"load",obj.Succ);
			if(obj.Err){
				Tobj.addEvent(s,"error",obj.Err);
			};
		};
	}else{
		s.onreadystatechange=function(){
			if(s.readyState!="loaded") return;
			if (!tkey){
				try{
					obj.Succ();
				} catch(e) {
					if(obj.Err){
						obj.Err();
					};
				};
			};
		};
	};
	s.type="text/javascript";
	s.src=turl;
};
/*获取模板片断*/
String.prototype.getCode=function getCode(tag){
	var templetHTML = this;
	templetHTML=templetHTML.replace(/[\t\n\r]/g,"");
	var re = new RegExp('\<!--[ \t]*' + tag + '开始--\>(.+?)\<!--[ \t]*' + tag + '结束--\>','ig');/*By Newskyline 2006-12-01*/
	templetHTML = templetHTML.match(re,"$1");
	if(templetHTML==this){
		return '';
	}else{
		return RegExp.$1;
	};
};
/*填充模板片断*/
String.prototype.inCode=function getCode(tag,str){
	var templetHTML = this;
	templetHTML=templetHTML.replace(/[\t\n\r]/g,"");
	var re = new RegExp('\<!--[ \t]*' + tag + '开始--\>(.+?)\<!--[ \t]*' + tag + '结束--\>','ig');/*By Newskyline 2006-12-01*/
	templetHTML = templetHTML.match(re,"$1");
	templetHTML=this.replace(RegExp.$1,str);
	if(templetHTML==this){
		return '';
	}else{
		return templetHTML;
	};
};
/*节点自删除*/
Array.prototype.remove = function(index){
	if (typeof index == "undefined" || typeof index != "number"){
		return;
	};
	var fArray = this.slice(0,index);
	var bArray = this.slice(index+1,this.length);
	return [].concat(fArray,bArray);
};
/*克隆节点*/
Object.prototype.Clone = function(){
    var objClone;
    if ( this.constructor == Object ) objClone = new this.constructor(); 
    else objClone = new this.constructor(this.valueOf()); 
    for ( var key in this ){
        if ( objClone[key] != this[key] ){ 
            if ( typeof(this[key]) == 'object' ){ 
                objClone[key] = this[key].Clone();
            }else{
                objClone[key] = this[key];
            };
        };
    };
    objClone.toString = this.toString;
    objClone.valueOf = this.valueOf;
    return objClone; 
};
/*变成大写*/
String.prototype.toUC = function(){
	var leftword=this.Left(1);
	var rightword=this.Right(this.length-1);
	leftword=leftword.toUpperCase();
	return (leftword+rightword);
};
/*判断是否邮箱*/
String.prototype.isEmail = function(){
	return /^\w+((-\w+)|(\.\w+))*\@[A-Za-z0-9]+((\.|-)[A-Za-z0-9]+)*\.[A-Za-z0-9]+$/.test(this);
};
/*按左取字符*/
String.prototype.Left = function(len){
	if(isNaN(len)||len==null){
		len = this.length;
	}else{
		if(parseInt(len)<0||parseInt(len)>this.length){
			len = this.length;
		};
	}	;
	return this.substr(0,len);
};
/*按右取字符*/
String.prototype.Right = function(len){
	if(isNaN(len)||len==null){
		len = this.length;
	}else{
		if(parseInt(len)<0||parseInt(len)>this.length){
			len = this.length;
		};
	};	
	return this.substring(this.length-len,this.length);
};
/*tplay播放器*/
var tplay=function(turl,twidth,theight){
	ttype=turl.toLowerCase().Right(3);
	if (twidth==null || twidth=="") twidth="512";
	if (theight==null || theight=="") theight="330";
		switch (ttype){
			case ".rm":
				tplay.rm(turl,twidth,theight);
				break;
			case ".ra" :
				tplay.rm(turl,twidth,theight);
				break;
			case "ram" :
				tplay.rm(turl,twidth,theight);
				break;
			case "mp3" :
				tplay.wm(turl,twidth,"45");
				break;
			case "wma" :
				tplay.wm(turl,twidth,"45");
				break;
			case "wmv" :
				tplay.wm(turl,twidth,theight);
				break;
			default :
				tplay.wm(turl,twidth,theight);
				break;
		};
};
/*使用Windows Media Player内核*/
tplay.wm=function(turl,w,h){
	wmhtml='<param value="1" name="AutoStart"/>';
	wmhtml+='<param value="1" name="PlayCount"/>';
	wmhtml+='<param name="enabled" value="1">';
	wmhtml+='<param name="Filename" value="'+turl+'" valuetype="ref">';
	wmhtml+='<param name="EnableContextMenu" value="0">';
	wmhtml+='<param value="50" name="Volume"/>';
	wmhtml+='<embed width="'+w+'" height="'+h+'" enablecontextmenu="0" playcount="0" allowscan="1" showcontrols="1" autorewind="0" autostart="1" type="video/x-ms-wmv" name="MediaPlayer" filename="'+turl+'" src="'+turl+'"/>';
	if (tplay.wm.check){
		$("musicplay").innerHTML="";
		var elem = document.createElement("object");
		elem.codeBase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902";
		/*elem.type="application/x-oleobject"*/
		elem.standby="Loading...";
		elem.width=w;
		elem.height=h;
		elem.classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95";
		if(Browser.isIE){
			wmhtml='<object height="'+h+'" width="'+w+'" codeBase="http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=6,0,02,902" standby="Loading..." classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95">'+wmhtml+'</object>';
			$("musicplay").innerHTML=wmhtml;
		}else{
			elem.innerHTML=wmhtml;
			$("musicplay").appendChild(elem);
		};
	}else{
		$("musicplay").innerHTML="Microsoft Windows Media Player 未安装";			
	};
};
/*使用RealPlayer内核*/
tplay.rm=function(turl,w,h){
	rmhtml='<object height="'+h+'" width="'+w+'" classid="clsid:CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA">';

	rmhtml+='<param name="src" value="'+turl+'" />';
    rmhtml+='<param name="controls" value="ImageWindow,ControlPanel" />';
    rmhtml+='<param name="console" value="one" />';
    rmhtml+='<param name="autostart" value="true" />';
    rmhtml+='<embed height="'+h+'" width="'+w+'" type="audio/x-pn-realaudio-plugin" src="'+turl+'" controls="ImageWindow,ControlPanel" console="06_ld150" autostart="true"> </embed>';
    rmhtml+='</object>';
	if (tplay.rm.check){
		$("musicplay").innerHTML=rmhtml;
	}else{
		$("musicplay").innerHTML="Helix RealPlayer 未安装";			
	};
};
/*Windows Media Player版本检测*/
tplay.wm.check=function(){
	var obj=document.createElement("object");
	var clsId="{22D6F312-B0F6-11D0-94AB-0080C74C7E95}";
	obj.classid="clsid:22D6F312-B0F6-11D0-94AB-0080C74C7E95";
	if (isIE){
		with(document.body){
			addBehavior('#default#clientcaps');
			VersionWord=isComponentInstalled(clsId,"componentid")?'Microsoft Windows Media Player '+getComponentVersion(clsId,"componentid")+' 已安装。':"Microsoft Windows Media Player 未安装";
		};
	}else{
		for (i=0;i<navigator.plugins.length;i++){
			if (navigator.plugins[i].name.substring(0,20)=="Windows Media Player"){
				VersionWord=true;
				break;
			}else{
				VersionWord=false;
			};
		};
	};
	return VersionWord;
};
/*RealPlayer版本检测*/
tplay.rm.check=function(){
	var obj=document.createElement("object");
	obj.classid="clsid:cfcdaa03-8be4-11cf-b84b-0020afbbccfa";
	if (isIE){
		try{
			RMvn=(Number(obj.GetVersionInfo().replace(/\./g,""))>Number(6012105))?"10":"One";
			VersionWord="Helix RealPlayer "+RMvn+" Build "+obj.GetVersionInfo()+" 已安装。";
		}catch(e){VersionWord="Helix RealPlayer 未安装";}
	}else{
		for (i=0;i<navigator.plugins.length;i++){
			if (navigator.plugins[i].name.indexOf ("RealPlayer") >= 0){
				VersionWord=true;
				break;
			}else{
				VersionWord=false;
			};
		};
	};
	return VersionWord;
};
/*
仅以以下此JS段落向僵尸王EMU致敬！
任何人等使用、派生、转载此文档不包含此标注信息将受到全中国JS写手之唾弃！
*/
/*check for XPath implementation Optimize By EMU*/
if(!Browser.isIE){
/*prototying the Element*/
	Element.prototype.selectNodes = function(cXPathString){
		if(this.ownerDocument.selectNodes){

			return this.ownerDocument.selectNodes(cXPathString, this);
		}else{
			throw "For XML Elements Only";
		};
	};
/*prototying the Element*/
	Element.prototype.selectSingleNode = function(cXPathString){
		if(this.ownerDocument.selectSingleNode){
			return this.ownerDocument.selectSingleNode(cXPathString, this);
		}else{
			throw "For XML Elements Only";
		};
	};
};
if(Browser.isFirefox){
/*prototying the XMLDocument*/
	XMLDocument.prototype.selectNodes = function(cXPathString, xNode){
		if( !xNode ) { xNode = this; };
		var oNSResolver = this.createNSResolver(this.documentElement);
		var aItems = this.evaluate(cXPathString, xNode, oNSResolver,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
		var aResult = [];
		for( var i = 0; i < aItems.snapshotLength; i++){
			aResult[i] = aItems.snapshotItem(i);
		};
		return aResult;
	};
/*prototying the XMLDocument*/
	XMLDocument.prototype.selectSingleNode = function(cXPathString, xNode){
		if( !xNode ) { xNode = this; };
		var xItems = this.selectNodes(cXPathString, xNode);
		if( xItems.length > 0 ){
			return xItems[0];
		}else{
			return null;
		};
	};
/*prototying the insertAdjacentHTML*/
	HTMLElement.prototype.insertAdjacentHTML = function (sWhere, sHTML) {
		var df;  var r = this.ownerDocument.createRange();
		switch (String(sWhere).toLowerCase()) {
			case "beforebegin":
			r.setStartBefore(this);
			df = r.createContextualFragment(sHTML);
			this.parentNode.insertBefore(df, this);
			break;
			case "afterbegin":
			r.selectNodeContents(this);
			r.collapse(true);
			df = r.createContextualFragment(sHTML);
			this.insertBefore(df, this.firstChild);
			break;
			case "beforeend":
			r.selectNodeContents(this);
			r.collapse(false);
			df = r.createContextualFragment(sHTML);
			this.appendChild(df);
			break;
			case "afterend":
			r.setStartAfter(this);
			df = r.createContextualFragment(sHTML);
			this.parentNode.insertBefore(df, this.nextSibling);
			break;
		};
	};
};
if(Browser.isOpera){
/*prototying the Document*/
	Document.prototype.selectNodes = function(cXPathString, xNode){
		if( !xNode ) { xNode = this; };
		var oNSResolver = this.createNSResolver(this.documentElement);
		var aItems = this.evaluate(cXPathString, xNode, oNSResolver,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
		var aResult = [];
		for( var i = 0; i < aItems.snapshotLength; i++){
			aResult[i] = aItems.snapshotItem(i);
		};
		return aResult;
	};
/*prototying the Document*/
	Document.prototype.selectSingleNode = function(cXPathString, xNode){
		if( !xNode ) { xNode = this; };
		var xItems = this.selectNodes(cXPathString, xNode);
		if( xItems.length > 0 ){
			return xItems[0];
		}else{
			return null;
		};
	};
};
/*json支持*/
Object.prototype.objSelectNodes = function(oPath){
	if(/^\//.test(oPath)) oPath = oPath.substr(1);
	var a = oPath.split("/");
	var p = a.shift();
	var r=/(\w+)\[@(\w+)='?"?([^'"\]]*)'?"?\]/;
	if(r.test(p)){
		p=p.match(r);
		p.shift();
	}else{
		p=[p];
	};
	var o = this[p[0]];
	if(!o) return [];
	if(!o.sort) o = [o];
	if(p.length>0){
		var tmpar = [];
		for(var i=0;i<o.length;i++){
			if(o[i][p[1]]==p[2]) tmpar[tmpar.length]=o[i];
		};
		o=tmpar;

	};
	if(a.length==0)	return o;
	var subPath = a.join("/");
	var result = [];

	for(var i=0;i<o.length;i++){
		var a = o[i].objSelectNodes(subPath);
		if(a && a.length>0) result = result.concat(a);
	};
	return result;
};
Object.prototype.objSelectSingleNode = function(oPath){
	var o = this.objSelectNodes(oPath);
	return (o.length>=1)?(o[0]):(null);
};
function obj2str(o){
	var r = [];
	if(typeof o =="string") return "\""+o.replace(/([\'\"\\])/g,"\\$1").replace(/(\n)/g,"\\n").replace(/(\r)/g,"\\r").replace(/(\t)/g,"\\t")+"\"";
	if(typeof o == "object"){
		if(!o.sort){
			r[0]="{";
			for(var i in o){
				r[r.length]=i;
				r[r.length]=":";
				r[r.length]=obj2str(o[i]);
				r[r.length]=",";
			};
			if(!!document.all && !/^\n?function\s*toString\(\)\s*\{\n?\s*\[native code\]\n?\s*\}\n?\s*$/.test(o.toString)){
				r[r.length]="toString:"+o.toString.toString();
				r[r.length]=",";
			};
			r[r.length-1]="}";
		}else{
			r[0]="[";
			for(var i =0;i<o.length;i++){
				r[r.length]=obj2str(o[i]);
				r[r.length]=",";
			};
			r[r.length-1]="]";
		};
		return r.join("");
	};
	return o.toString();
};

var r_index = /<%=index%>/g;
var r_text = /<%=text%>/g;
var r_attribute_global = /<%=@(\w+)%>/g;
var r_attribute = /<%=@(\w+)%>/;

function fillDIV(divId,xDoc,tHtml,limit,display){
	var div = $(divId);
	if (!div) {alert("指定的模版容器不"+divId+"存在");return;}
	var templetHTML;
	if(tHtml){
		div.oldHTML=tHtml;
	};
	if (div.oldHTML) {
		templetHTML = div.oldHTML;
	}else{
		templetHTML = div.oldHTML = div.innerHTML;
	};
	templetHTML = templetHTML.replace(/\[%/g,"<%").replace(/%\]/g,"%>").replace(/\{%/g,"<%").replace(/%\}/g,"%>").replace(/\<!--%/g,"<%").replace(/%-->/g,"%>").replace(/\/\*%/g,"<%").replace(/%\*\//g,"%>");
	var reExp = /\(%(.[^\)]*)%\)/;
	var r;
	while ((r = reExp.exec(templetHTML))!=null ){
		templetHTML=templetHTML.replace(reExp,eval(r[1]));
	};
	div.innerHTML = doFill(templetHTML,xDoc,0,limit);
	div.style.display = display?"none":"block"
};
function doFill(templetHTML,xDoc,xLevel,limit){
	var isXML = !!xDoc.xml;
	var stRegPrefix = "<%repeat_"+xLevel+"\\s*match=\"([^\"]+)\"[^%]*%>";
	var stRegContent = "<%repeat_"+xLevel+"[^>]*%>((.|\\n)+)<%_repeat_"+xLevel+"%>";

	var r_repeat_match = new RegExp(stRegPrefix);
	var r_repeat_match_global = new RegExp(stRegPrefix,"g");
	var r_repeat_content = new RegExp(stRegContent);
	var r_repeat_match_next_level = new RegExp("<%repeat_"+(xLevel+1)+" match=\"([^\"]+)\"");
	if (templetHTML.match(r_repeat_match)==null){
		alert("没有找到节点<!--%repeat_"+(xLevel)+"%-->");
		return;
	}

	var arPrefix = templetHTML.match(r_repeat_match_global);
	var startPosition = 0;
	for (var i=0;i<arPrefix.length;i++){
		var st = arPrefix[i];
		var nodePath = st.replace(/^.*match=\"|\".*$/g,""); /*获得xml节点路径*/
		if (st.indexOf("callback")>0)
			var fnCallBack = eval(st.replace(/^.*callback=\"|\".*$/g,"")); /*获得回调函数*/
		startPosition = templetHTML.indexOf(st);
		var endPosition = templetHTML.indexOf("<%_repeat_"+xLevel+"%>",startPosition);
		var replaceContent = templetHTML.substring(startPosition,endPosition+13);
		startPosition += st.length;
		var repeatContent = templetHTML.substring(startPosition,endPosition).replace(/\x0a|\x09/g,""); /*获得内容模板*/
		var nodes = isXML?xDoc.selectNodes(nodePath):xDoc.objSelectNodes(nodePath); /*获得xml节点点*/
		if (st.indexOf("repeat_num")>0){/*获得该段循环次数*/
			var	repeatTimes = (st.replace(/^.*repeat_num=\"*|\".*$/g,"")); 
		}else{
			var	repeatTimes=nodes.length;		
		}
		if(limit!=null){
			var	repeatTimes=limit;	
		}
		if(repeatTimes==0 || nodes.length<repeatTimes){/*但最大不得超过XML结点数*/
			repeatTimes=nodes.length;
		}
		var arContent = [];
		var attributes = repeatContent.match(r_attribute_global);
		if (attributes == null) attributes = [];
		for (var j=0;j<repeatTimes;j++){
			var node = nodes[j];
			var content = repeatContent;
			if (repeatContent.match(r_repeat_match_next_level)!=null) /*处理子节点*/
				content = doFill(repeatContent,node,xLevel+1);
			var s = content.replace(r_index,(j+1)).replace(r_text,isXML?node.text:node);
			for (var k=0;k<attributes.length;k++){
				var attrTag = attributes[k].replace(/\W/g,"");
				var attrValue = isXML?nodes[j].getAttribute(attrTag):nodes[j][attrTag];
				if (attrValue==null && isXML && nodes[j].selectSingleNode(attrTag)!=null)
					attrValue = nodes[j].selectSingleNode(attrTag).text;
				if (attrValue==null) attrValue = "";
				s = s.replace(attributes[k],attrValue);
			}
			arContent[j] = s;
			if (fnCallBack) fnCallBack(node,arContent,j);
		}
		templetHTML = templetHTML.replace(replaceContent,arContent.join(""));
	}
	return templetHTML;
}
