//window.onerror=function(){return true};
String.prototype.inc=function(s){return this.indexOf(s)>-1?true:false}
String.prototype.leftB=function(len){
	var s=this.replace(/\*/g," ").replace(/[^\x00-\xff]/g,"**")
	return this.slice(0,s.slice(0,len).replace(/\*\*/g," ").replace(/\*/g,"").length)
}
function $(obj){return document.getElementById(obj)}
function oDel(obj){if(obj!=null){try { obj.parentNode.removeChild(obj) } catch(e){} }}
function addEvent(obj,eventName,eventFunc){if(obj.attachEvent){obj.attachEvent(eventName,eventFunc);}else if(obj.addEventListener){eventName = eventName.toString().replace(/on(.*)/i,'$1');obj.addEventListener(eventName,eventFunc,true);}}
function delEvent(obj,eventName,eventFunc){if(obj.detachEvent){obj.detachEvent(eventName,eventFunc);}else if(obj.removeEventListener){eventName = eventName.toString().replace(/on(.*)/i,'$1');obj.removeEventListener(eventName,eventFunc,true);}}
Array.prototype.add=function(key){this[this.length]=key}
if(!document.all){
	Event.prototype.__defineGetter__("srcElement",function(){var node=this.target;while(node.nodeType!=1){node=node.parentNode}return node})
	Event.prototype.__defineGetter__("x",function(){return this.clientX})
	Event.prototype.__defineGetter__("y",function(){return this.clientY})
}
function objxy(e){
	var a=new Array()
	var t=e.offsetTop;
	var l=e.offsetLeft;
	var w=e.offsetWidth;
	var h=e.offsetHeight;
	while(e=e.offsetParent){
		t+=e.offsetTop;
		l+=e.offsetLeft;
	}
	a[0]=t;a[1]=l;a[2]=w;a[3]=h
  return a;
}

///屏幕高度
function getbodyCH(){
	if(window.innerHeight){
	   return window.innerHeight;
	}else if(document.documentElement&&document.documentElement.clientHeight){ 
	    return document.documentElement.clientHeight; 
	}else if(document.body){
	    return document.body.clientHeight;
	}
}
///屏幕宽带
function getbodyCW(){
	if(window.innerWidth){
	    return window.innerWidth;
	}else if(document.documentElement&&document.documentElement.clientWidth){ 
	    return document.documentElement.clientWidth;
	}else if(document.body){
	    return document.body.clientWidth;
	}	
}
/////滚动条高度
function scrolltop(){
	if(window.pageYOffset){
	    return window.pageYOffset;
	}else if(document.documentElement&&document.documentElement.scrollTop){
	    return document.documentElement.scrollTop;
	}else if(document.body){
	    return document.body.scrollTop;
	}
}
////创建css
function insCss(css){
	if(document.all){
		var oStyle=document.styleSheets[document.styleSheets.length-1]
		var a=css.split("\n")
		for(var i=0;i<a.length;i++){
			if(a[i]=="")
				continue
			var ad=a[i].replace(/([\s\S]*)\{([\s\S]*)\}/,"$1|$2").split("|")
			var classNames=ad[0].split(",")
			for(var j=0;j<classNames.length;j++){
				oStyle.addRule(classNames[j],ad[1]);
			}
		}
	}else{
		var style = document.createElement("style");
		style.type = "text/css";
		style.innerHTML=css
		document.getElementsByTagName("HEAD").item(0).appendChild(style);
	}
}

function SetAjax(url,parameter,echo){
	var put="get"	//提交类型
	if(parameter.slice(0,5)=="post:"){
		parameter=parameter.slice(5)
		put="post"
	}
	var req = null;
	if(window.XMLHttpRequest){
		req = new XMLHttpRequest();
	}else if(window.ActiveXObject){
		var msxml = new Array('MSXML2.XMLHTTP.5.0', 'MSXML2.XMLHTTP.4.0', 'MSXML2.XMLHTTP.3.0', 'MSXML2.XMLHTTP', 'Microsoft.XMLHTTP');
		for(var i=0;i<msxml.length;i++){
			try{
				req = new ActiveXObject(msxml[i]);
			    break;
			}catch(e){}
		}
	}
	if(put=="get"){
		if(parameter!="")
			if(url.inc("?"))
				url+="&"+parameter
			else
				url+="?"+parameter
			//url+="&"+parameter
		parameter=null
	}
		var t=new Date()
		if(url.inc("?"))
			url+="&"+t.getTime()
		else
			url+="?"+t.getTime()
	req.open(put,url, true);
	req.onreadystatechange = function(){
		if(req.readyState==4 && req.status==200){
		//	alert(req.responseText)
			echo(req.responseXML,req.responseText)
try{
			put=null
			msxml=null
			req=null;
			CollectGarbage();
}catch(e){}			

		}
	}
	req.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
	req.send(parameter);
//	if (document.all)
//		window.attachEvent('onbeforeunload',function(){try{req.abort()}catch(e){}})
}
function SelectNodes(Xml,xpath){
	if(!xpath.inc("/"))
		return Xml.getElementsByTagName(xpath)
	if (document.all)
		return Xml.selectNodes(xpath) ;
	else{
		var aNodeArray = new Array();
		var xPathResult = Xml.evaluate(xpath, Xml, Xml.createNSResolver(Xml.documentElement), XPathResult.ORDERED_NODE_ITERATOR_TYPE, null) ;
		if (xPathResult){
			var oNode = xPathResult.iterateNext() ;
			while(oNode){
				aNodeArray[aNodeArray.length] = oNode ;
				oNode = xPathResult.iterateNext();
			}
		}
		return aNodeArray ;
	}
}
function xva(Xml,xpath){return SelectNodes(Xml,xpath)}
function xv(Xml,xpath,n){try{return oTxt(xva(Xml,xpath)[n==null?0:n])}catch(e){return ""}}
function oTxt(obj){try{return obj.firstChild.nodeValue}catch(e){return ""}}
//function oTxt(obj){try{return obj.firstChild.nodeValue.replace(/\</gi,"&lt;").replace(/\>/gi,"&gt;").replace(/\"/g,"&quot;").replace(/\'/g,"&acute;")}catch(e){return ""}}
function oKey(obj,key){var o=obj.getAttribute(key);return o==null?"":o}



/////////////////////////////////////////////////////////////////////
var zindex=1000		/////全局浮动层顺序
function _$w(id){
	////////底部屏蔽层
    var shield=document.createElement("div")		////创建底部屏蔽层
    shield.className="shield"
    if (!id) {
        zindex++
        shield.style.zIndex=zindex
        if(getbodyCH()>document.documentElement.scrollHeight)
            shield.style.height=getbodyCH()+"px"
        else
            shield.style.height=document.documentElement.scrollHeight+"px"
    }
	//////////////底部屏蔽层end
	var box,fm,close_w
	//////////层遮罩
	var wframe=document.createElement("iframe")
	wframe.style.cssText="position:absolute;filter:alpha(opacity=0);-moz-opacity:0;opacity:0;-khtml-opacity:0"
    if (id) wframe.id = id
	zindex++
	wframe.style.zIndex=zindex
	
	box=document.createElement("span")
	box.className="msg"
	zindex++
	box.style.zIndex=zindex
	fm=document.createElement("FORM");
	fm.style.cssText="z-index:2;position:absolute;left:0px;top:0px;margin:8px;width:100%;border:1px solid #666;";	
	this.form=fm;	
	box.appendChild(fm);
	blueBackground=document.createElement("div");
	blueBackground.id="blueBackground";
	blueBackground.style.cssText="position:absolute;filter:alpha(opacity=50);-moz-opacity:0.5;-khtml-opacity:0.5;opacity:0.5;z-index:1;background:#000;top:0px;left:0px;";	
	box.appendChild(blueBackground);
	////头部
	var top=document.createElement("div")	///头部
	top.className="top"
	var tl=document.createElement("div")		////头部左侧
	tl.className="tl"
	top.appendChild(tl)
	var title_dom=document.createElement("div")	////标题
	title_dom.className="title"
	top.appendChild(title_dom)
	fm.appendChild(top)
	
			///拖拽操作
	var dragxy={}			//拖拽信息
	var adang=0;
	var drag=function(e){
		e=e||event
		wframe.style.left=box.style.left=(e.x-dragxy.left)+"px"
		wframe.style.top=box.style.top=(e.y-dragxy.top)+"px"
	}
	top.onmousedown=function(e){
		e=e||event;
		var ee=e.srcElement
		dragxy.left=e.x-parseInt(box.style.left.replace("px",""))
		dragxy.top=e.y-parseInt(box.style.top.replace("px",""))
		addEvent(document.body,"onmousemove",drag)
	}
	top.onmouseup=function(e){delEvent(document.body,"onmousemove",drag)}
	
	////头部结束
	/////内容
	var content=document.createElement("div")		///中间内容
	content.className="content nomargin"
	var br=document.createElement("div")
	br.className="br"
	content.appendChild(br)

	var info=document.createElement("div")			///显示内容
	info.className="info"

	br.appendChild(info)
	
	
	var bt_box=document.createElement("div")		////按钮容器
	bt_box.className="bt"

	br.appendChild(bt_box)
	
	
	fm.appendChild(content)
	////内容end
	
	
	
	///*关闭窗口
	this.close_w=close_w=document.createElement("input")
	close_w.type="button"
	close_w.className="close"

	fm.appendChild(close_w)
	///关闭窗口end


	////////事件

	this.title=function(titles){				////添加标题
		if(titles==null||titles=="")
			titles="提示"
		title_dom.innerHTML=titles
	}
	
	this.content=function(str){
		info.innerHTML=str
	}
	this.width=function(w){
		wframe.style.width=fm.style.width=w+"px"
		wframe.style.width=parseInt(wframe.style.width)+20+"px";
	}
	this.height=function(h){
		if(h==null){
			wframe.style.height=fm.offsetHeight+20+"px"
		}else{
			wframe.style.height=h+"px"
		}	
	}
	
	this.add_bt=function(obj){					/////添加按钮
		var onbutton=document.createElement("button")
		onbutton.innerHTML=obj.value
		onbutton.className="sendBtn2";
		if(onbutton.innerHTML=="取消") onbutton.className="cancleBtn";;
		onbutton.setAttribute("type",obj.type)
		bt_box.appendChild(onbutton)
		
		onbutton.onclick=function(){
			if(obj.echo!=null){
				if(typeof(obj.echo)=="function"){
					var onecho=obj.echo()
					if(onecho==false)
						return
				}else{
					eval(obj.echo)
				}
			}
			oDel(box)
			oDel(shield)
			oDel(wframe)
			try{
				shield=box=fm=close_w=top=tl=title=dragxy=drag=content=br=info=fm=botm=bm_l=bm_r=close_w=null;
				CollectGarbage();
			}catch(e){}
		}
	}
	this.show=function(t,l){						//显示窗口
        var ah = (scrolltop()+(getbodyCH()-fm.offsetHeight-100)/2)
        /*
        var hm
        if (event) {
            if (event.clientY) {
                if (ah-event.clientY > 70) {
                    hm = event.clientY+10
                } else {
                    hm = event.clientY-50
                }
            } else {
                if (ah>300) {
                    hm = 300
                } else {
                    hm = ah
                }

            }
        } else {
            if (ah>300) {
                hm = 300
            } else {
                hm = ah
            }
        }
        */

        if (t) {
		    wframe.style.top=box.style.top=t+"px"
        } else {
		    wframe.style.top=box.style.top=ah+"px"
        }
        //if (event)
		//    wframe.style.top=box.style.top=(event.clientY+10)+"px"
        //else
        var ww
        if (wframe.style.width) {
            ww = parseInt(wframe.style.width);
        } else {
            ww = 0;
        }
		//wframe.style.left=box.style.left=((getbodyCW()-fm.offsetWidth-16)/2)+"px"
        //alert(getbodyCW()+'|'+ww)
        if (l) {
		    wframe.style.left=box.style.left=l+"px"
        } else {
		    wframe.style.left=box.style.left=((getbodyCW()-ww)/2)+"px"
        }
        //alert(wframe.style.left)
        

		//wframe.style.left=box.style.left="300px"
		//wframe.style.left=box.style.left=(event.clientX-100)+"px"

		document.body.appendChild(box)
		document.body.appendChild(wframe)
		document.body.appendChild(shield)
		close_w.focus()
		blueBackground.style.width=fm.offsetWidth+16+"px";
		blueBackground.style.height=fm.offsetHeight+16+"px";

	}
	top.onselectstart=function(){return false}	////屏蔽选择文字
	this.closew=function(){
		oDel(box)
		oDel(shield)
		oDel(wframe)
		try{
			wframe=shield=box=fm=close_w=top=tl=title=dragxy=drag=content=br=info=fm=botm=bm_l=bm_r=close_w=null;
			CollectGarbage();
		}catch(e){}
	}
	close_w.onclick=function(){					//////关闭按钮
		oDel(box)
		oDel(shield)
		oDel(wframe)
		try{
			wframe=shield=box=fm=close_w=top=tl=title=dragxy=drag=content=br=info=fm=botm=bm_l=bm_r=close_w=null;
			CollectGarbage();
		}catch(e){}
	}
}
function getback(url){
	var style = document.createElement("style"); 
	style.type = "text/css"; 
	style.href = url
	document.getElementsByTagName("HEAD").item(0).appendChild(style); 
}

/////////////消息对话框
function msg(nr,echo,title){
	nr="<div style='height:60px;text-align:center;line-height:60px'>"+nr+"</div>"
	var w=new _$w()
	w.content(nr)
	w.title(title)
	w.width(240)
	w.add_bt({"value":"确定","type":"button","echo":echo})
	if(echo!=null)
		w.add_bt({"value":"取消","type":"button"})
	w.show()
	w.height(null)
}
/////////////提示消息框
function alertMsg(nr,echo,title){
	nr="<div style='height:60px;text-align:center;line-height:60px'>"+nr+"</div>"
	var w=new _$w()
	w.content(nr)
	w.title(title)
	w.width(240)
	w.add_bt({"value":"确定","type":"button","echo":echo})
	w.show()
	w.height(null)
}
/////////////////////////工具
var tpl=[]

function tools(key,echos){
	if(tpl[key]==null){
		tpl[key]={}
		if(echos!=null)
			tpl[key].echos=echos
		var url="../space/xml/"+key+".xml"
		SetAjax(url,"",backtools)
	}else{
		tpl[key].echos=echos
		settool(key)
	}
	//
}
function backtools(xml){
	var key=oKey(xva(xml,"/root/xhtml")[0],"tpl")
	tpl[key].html=xv(xml,"/root/xhtml")
	eval(xv(xml,"/root/xjs"))
	eval("tpl['"+key+"']").obj=eval("new "+key+"()")
	settool(key)
}
function settool(key){
	tpl[key].obj.onload()
}




//////////////////////////////////
var onselectcolor=null
function selectcolor(obj){
	if(obj==onselectcolor)
		return
	onselectcolor=obj
///	a[0]=t;a[1]=l;a[2]=w;a[3]=h
	var xy=objxy(obj)
	var top=xy[0]+xy[3]
	var l="<table border='0' cellspacing='5' cellpadding='0' align='center' style='position:absolute;top:0px;left:0px;z-index:2'>\
			<tr> \
			  <td colspan='3' style='background:"+obj.style.background+";border:1px solid #000000;height:20px;width:60px'>&nbsp;</td>\
			  <td colspan='5'>选择色彩</td>\
			</tr>"
			var c="000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF".split(",")
			for(var i=0;i<5;i++){
				l+="<tr>"
					for(var j=0;j<8;j++){
						l+="<td style='width:13px;cursor:pointer;height:15px;border:1px solid #000;font-size:2px;background:#"+c[j+i*8]+"'>&nbsp;</td>"
					}
				l+="</tr>"
			}
	l+="</table>"
	zindex++
	var bg=document.createElement("iframe")
	bg.style.cssText="background:#FFF;wdith:180px;height:140px;position:absolute;top:0px;left:0px;filter:alpha(opacity=0);-moz-opacity:0;z-index:1"
	var box=document.createElement("div")
	zindex++
	box.style.cssText="width:180px;height:140px;background:#FFF;border:1px solid #CCC;position:absolute;overflow:hidden;top:"+top+"px;left:"+xy[1]+"px;z-index:"+zindex
	box.innerHTML=l
	box.appendChild(bg)
	document.body.appendChild(box)
	var onbox=function(e){
		e=e||event;
		var ee=e.srcElement
		if(ee==obj)
			return
			if(ee.tagName=="TD"){
				if(ee.parentNode.parentNode.parentNode.parentNode==box){
					obj.style.background=ee.style.backgroundColor
					css[obj.id]=ee.style.backgroundColor
					insCss(obj.getAttribute("inscss").replace(/#key#/gi,ee.style.backgroundColor))
					oDel(box)
					delEvent(document.body,"onmousedown",onbox)
					onselectcolor=null
					return
				}
			}
		while(ee){
			if(ee==box)
				return
			if(ee.tagName=="HTML"){
				oDel(box)
				delEvent(document.body,"onmousedown",onbox)
				onselectcolor=null
				return
			}
			ee=ee.parentNode
		}
		
	}
	addEvent(document.body,"onmousedown",onbox)
}

function basename(path) {
    return path.replace(/\\/g,'/').replace( /.*\//, '' );
}
       
function dirname(path) {
    return path.replace(/\\/g,'/').replace(/\/[^\/]*$/, '');;
}
