/***************************************************************************                                                                                                       
 *   Copyright (C) 2009 by Vitaly Gnidenko                                 *                                                                                                       
 *   lart@rambler.ru                                                       *                                                                                                       
 ***************************************************************************/  
/*$Id: Ldom.js 124 2009-03-15 13:34:47Z root $*/

YAHOO.util.Dom.setStyles=function(obj,styles){
	var obj=this.get(obj);
	for(property in styles){
		this.setStyle(obj,property,styles[property]);
	}
	return obj;
}

YAHOO.util.Dom.absolutize=function(obj,center){
		var obj=this.get(obj);
		var h=this.getViewportHeight();
		var w=this.getViewportWidth();
		var sl=this.getDocumentScrollLeft();
		var st=this.getDocumentScrollTop();
		this.setStyles(obj,{position:'absolute',display:'block'});
		var objSize=this.getDimensions(obj);
		var top=parseInt(h/2-objSize.height/2+parseInt(st));
		if (top<st)top=parseInt(st);
		this.setStyles(obj,{top:top+'px',
			left:parseInt(w/2-parseInt(objSize.width)/2+parseInt(sl))+'px'});
		return obj;
	}

YAHOO.util.Dom.getDimensions=function(obj){
	var obj=this.get(obj);
	var size=this.getRegion(obj);
	//var padding_width=Math.ceil(parseFloat(this.getStyle(obj,'padding-left'))+parseFloat(this.getStyle(obj,'padding-right')));
	var padding_width=0;
	var margin_width=Math.ceil(Math.abs(parseFloat(this.getStyle(obj,'margin-left')))+Math.abs(parseFloat(this.getStyle(obj,'margin-right'))));
	if (!margin_width)
		margin_width=0;
	return {width:(size['right']-size['left']+padding_width+margin_width),height:(size['bottom']-size['top'])}
}

YAHOO.util.Dom.getChildrenByTag=function(node,tag){
	return this.getChildrenBy(node,function(a){if (a.tagName==tag.toUpperCase())return true; else return false;});
}
