/**
*	author 贺博
*	date 2007-3-21
*/

UtilTool = Class.create();
UtilTool.register("com.duxiu.js.UtilTool");

UtilTool.addListener = function(_obj , _event , handle ,bfire){	
	if(isIE()){		
		_obj.attachEvent(_event , handle);		
	}
	else{
		//Mozilla has no "on" words;
		if(_event.indexOf("on")==0){
			_event = _event.substring(2,_event.length);
		}
		_obj.addEventListener(_event , handle , bfire);
	}
}

/**
*解析xsl文件
*xsl_file 文件路径
*xml 一个XML节点对象
*/
UtilTool.transformXml = function(xsl_file,xml){
	var xsl = ComponentFactory.createXMLDOM();
	xsl.async = false;
	xsl.load(xsl_file);
	try{
		return xml.transformNode(xsl);//ie
	}
	catch(e){
		var xslDoc = ComponentFactory.createXMLDOM();
		xslDoc.async = false;  
		xslDoc.load(xsl_file);
		var xslProc = new XSLTProcessor();
		xslProc.importStylesheet(xslDoc);
		
		var result=xslProc.transformToDocument(xml);//mozilla
		var xmls = new XMLSerializer();
		return xmls.serializeToString(result);
	}
}

/**
*解析一个xml的字符串 返回XML DOM对象
*_str_xml 一个xml的字符串
*/
UtilTool.parseXML = function(_str_xml){
	try{//ie
		var xml = ComponentFactory.createXMLDOM();	
		xml.async = false;
		xml.loadXML(_str_xml);
		return xml;
	}
	catch(e){//mozilla
		var oParser = new DOMParser();
		return oParser.parseFromString(_str_xml,"text/xml");
	}
}

//设置回车相应
UtilTool.OnEnterKey = function(_dom , handler){
	_dom.onkeydown = function(ev){			
		ev = ev||window.event;			
		if(ev.keyCode==13) handler();//回调
	}
}

UtilTool.OnEnterToSubmit = function(_input , _button){	
	UtilTool.OnEnterKey(_input , function(){
		_button.click();										  
	});
}


//获得鼠标位置
UtilTool.getEvenetPostion = function(ev){
	if(window.event){
		return{x:window.event.clientX , y:window.event.clientY};	
	}
	else {
		return{x:ev.layerX , y:ev.layerY };	
	}
}

//获得某个东西所在页面的offset位置(含滚轴)
UtilTool.getDomOffset = function(dom , noScroll){	
	var _x = 0;
	var _y = 0;

	while(dom){
		 _x+=dom.offsetLeft;
		 _y+=dom.offsetTop;
		// alert(dom.offsetParent);
		 dom = dom.offsetParent;
	}
	
	if(noScroll||false)
		return{x:_x, y:_y};
	else
		return{x:_x+getPageScrollWidth() , y:_y+getPageScrollHeigth()};
}







