var comm_o={
loadXml:function(path){
	var dom;
	try{
		if(window.ActiveXObject){
				dom = new ActiveXObject("Msxml2.DOMDocument.3.0");
				dom.setProperty("SelectionLanguage", "XPath"); 
				dom.async = false;
				dom.validateOnParse = false;
				dom.resolveExternals = false;
				dom.load(path);
		}else if(window.XMLHttpRequest){
			var xreq=new XMLHttpRequest();
			xreq.open("GET", path, false);
			xreq.send(null);
			dom=xreq.responseXML;
		}
	}catch(e){}

	if(typeof(dom)=="undefined" && document.implementation && document.implementation.createDocument){
		try{
			dom = document.implementation.createDocument("", "", null);
			dom.async = false;
			dom.load(path);
		}catch(e) {alert(e.message);}
	}
	return dom;		
},
selectNodes:function(docElementNode, strXPath){
	var ret=new Array();
	if( window.XPathEvaluator && window.XPathResult ){
		var oEvaluator = new XPathEvaluator();
		var oResolver = oEvaluator.createNSResolver(docElementNode.ownerDocument==null ? docElementNode.documentElement : docElementNode.ownerDocument.documentElement);
		var oIterator = oEvaluator.evaluate(strXPath, docElementNode, oResolver, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null );
		try {
			var thisNode = oIterator.iterateNext();
			while (thisNode) {
				ret.push(thisNode);
				thisNode = oIterator.iterateNext();
			}
		}catch (e) {}
	}else{
		var searchNodes =docElementNode.selectNodes(strXPath);
		for(var j=0; j<searchNodes.length;j++){
			ret.push(searchNodes.item(j));
		}
	}
	return ret;
},
selectNode:function(docElementNode, strXPath){
	var ret=null;
	if( window.XPathEvaluator && window.XPathResult ){
		var oEvaluator = new XPathEvaluator();
		var oResolver = oEvaluator.createNSResolver(docElementNode.ownerDocument==null ? docElementNode.documentElement : docElementNode.ownerDocument.documentElement);
		var oIterator = oEvaluator.evaluate(strXPath, docElementNode, oResolver, XPathResult.UNORDERED_NODE_ITERATOR_TYPE, null );
		try {
			var thisNode = oIterator.iterateNext();
			while (thisNode) {
				return thisNode;
			}
		}catch (e) {}
	}else{
		var searchNodes =docElementNode.selectNodes(strXPath);
		for(var j=0; j<searchNodes.length;j++){
			return searchNodes.item(j);
		}
	}
	return ret;
},
getElementRect:function(obj){
	var ret={x:0,y:0,w:0,h:0};
	try{
		if(obj.getBoundingClientRect){
			var rect = obj.getBoundingClientRect();
			ret.x=rect.left-2;
			ret.y=rect.top-2;
			ret.w=rect.right-rect.left;
			ret.h=rect.bottom-rect.top;
		}else{
			ret.x=obj.offsetLeft;
			ret.y=obj.offsetTop;
			var parent = obj.offsetParent;
			while(parent!=null){
				ret.x = ret.x + parent.offsetLeft;
				ret.y = ret.y + parent.offsetTop;
				parent=parent.offsetParent;
			}
			ret.w = obj.offsetWidth;
			ret.h = obj.offsetHeight;
		}
	}catch(e){}
	return ret;
},
getUnic:function(){
	var oDate = new Date();
	return comm_o.getNStr( oDate.getDay(),1) + comm_o.getNStr( oDate.getHours(),1)+comm_o.getNStr( oDate.getMinutes(),2)
						+comm_o.getNStr( oDate.getSeconds(),2) + comm_o.getNStr( oDate.getMilliseconds(),2);

},
getNStr:function(num,len){
	var sNum = num.toString(32);
	if(sNum.length>len) return sNum.substring(len);
	else if(sNum.length==len) return sNum;
	else{
		for(var i=sNum.length;i<len;i++) sNum="0"+sNum;
		return sNum;
	}	
},
getFlashHTML:function(sID,swf,width,height, wmode, style){
	if(typeof(wmode)=="undefined") wmode="transparent";
	if(typeof(style)=="undefined") style="";
	var html;
	if(window.ActiveXObject){
		html='<object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=9,0,0,0" width="'+width+'" height="'+height+'" id="'+sID+'" name="'+sID+'" align="middle" style="'+style+'">';
		html+='<param name="allowScriptAccess" value="sameDomain" />';
		html+='<param name="allowFullScreen" value="false" />';
		html+='<param name="movie" value="'+swf+'" />';
		html+='<param name="quality" value="high" />';
		html+='<param name="menu" value="false" />';
		html+= '<param name="wmode" value="'+wmode+'" />';
		html+='</object>';
	}else
		html='<embed src="'+swf+'" quality="high" width="'+width+'" height="'+height+'"  id="'+sID+'" name="'+sID+'" align="middle" menu="false" allowScriptAccess="sameDomain" allowFullScreen="false" wmode="'+wmode+'" style="'+style+'" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" />';
	
	return html;
}
}

function MM_swapImgRestore() { //v3.0
	var i,x,a=document.MM_sr; 
	for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}
function MM_preloadImages() { //v3.0
	var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
	var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
	if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}
function MM_findObj(n, d) { //v4.01
	var p,i,x;  
	if(!d) d=document; 
	if((p=n.indexOf("?"))>0&&parent.frames.length) {d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
	if(!(x=d[n])&&d.all) x=d.all[n]; 
	for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
	for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
	if(!x && d.getElementById) x=d.getElementById(n); return x;
}
function MM_swapImage() { //v3.0
	var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; 
	for(i=0;i<(a.length-2);i+=3)
		if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}

