// JavaScript Document
function FEDOMHandler(_root,paraObj)
{
	var _this = this ;
	var root = _root ;

	main( paraObj ) ;
	function main( paraObj )
	{
		
	}
	
	this.getPosition = function ( the , _parentObj )
	{
		/*得到某个DOM对象的绝对坐标,即相对于body的坐标*/
		/*
		以数组的形式返回,
		格式如下:
		_array[ "x" ] = xPos ;
		_array[ "y" ] = yPos ;
		*/
		var parentObj = _root.getOtherHandler().getVar( _parentObj , null )
		var diff = getDiff( the );
		var x = diff.x ;
		var y = diff.y ;
		while( ( the = the.offsetParent ) != null && ( parentObj == null || parentObj != the ) )
		{
			var diff = getDiff( the );
			x += diff.x ;
			y += diff.y ;			
		}
		return {x:x,y:y} ;
	}
	function getDiff(the)
	{
		var x = 0 ;
		var y = 0 ;
		x += the.offsetLeft ;
		y += the.offsetTop ;
		if( the == document.body )
		{/*
			if( typeof the.scrollTop == "undefined" )
			{
				x -= document.documentElement.scrollLeft;
				y -= document.documentElement.scrollTop;
			}
			else
			{
				x -= Math.max( document.documentElement.scrollLeft,document.body.scrollLeft);
				y -= Math.max( document.documentElement.scrollTop,document.body.scrollTop);
			}
			*/
		}
		else
		{
			x += the.scrollLeft;
			y += the.scrollTop;
		}
		return {x:x,y:y};
	}
	
	this.getChildById = function( mainObj , selfObjId )
	{
		if( mainObj == null )
		{
			return null ;	
		}
		return mainObj.all.item( selfObjId , 0 );
	}
	
	this.getDomText = function( s )
	{
		return s.replace( /<[^<>]*>/gi , "" ) ;	
	}
	
	this.parseHTML=function( _htmlCode )
	{
//生成过渡DIV
		var newObj = document.createElement( "DIV" );
		newObj.innerHTML = _htmlCode ;
//如果没有首节点,即HTML代码为空或没包在一个节点下,即失败,回调null
		if( newObj.children.length == 0 )
		{
			return null;
		}
//得到元件实体部分,并从过渡DIV中分离出来			
		var d=newObj.removeChild(newObj.children[0]);
//删除过渡DIV			
		newObj.parentNode.removeChild(newObj);
		return d ;
		
	}
	
	this.getChildListById = function( mainObj , selfObjId )
	{
		var domObjList = [] ;
		if( mainObj.all.item( selfObjId , 0 ) != null )
		{
			if( mainObj.all.item( selfObjId , 1 ) != null )
			{
				domObjList = mainObj.all.item( selfObjId ) ;
			}
			else
			{
				domObjList = [ mainObj.all.item( selfObjId , 0 ) ] ;
			}
		}
		return domObjList ;
	}
	
	this.preLoadImg = function (url,_splitStr)
	{
		var splitStr = (typeof _splitStr)!="undefined"?_splitStr:"|";
		var list = url.split( splitStr );
		var list2 = new Array();
		for( var i = 0 ; i < list.length ; i++ )
		{
			var obj = new Image();
			obj.src=list[i];
			list2[i]=obj;
		}
		return list2;
	}
	
}


function FECookieHandler( _root )
{
	this.initAllCookie = _initAllCookie ;
	this.getByKey = _getByKey ;
	this.setByKey = _setByKey ;
	var dic = null ;
	function _initAllCookie()
	{
		var the = document.cookie ;
		var aCookie = document.cookie.split("; ");
		dic = new Array() ;
		for (var i=0; i < aCookie.length; i++)
		{
			var aCrumb = aCookie[i].split("=");
			dic[ aCrumb[0] ] = unescape(aCrumb[1])
		}
	}

	function _getByKey( k , _flag )
	{
		var flag = typeof _flag == "boolean" ? _flag : false ;
		if( dic == null || flag )
		{
			_initAllCookie() ;
		}
		if( typeof dic[ k ] == "undefined" )
		{
			return null ;
		}
		return dic[ k ] ;
	} 

	function _setByKey( k , v , _date )
	{
		var date = typeof _date != "undefined" ? _date : null ;
		var str = "" ;
		str += k + "=" + escape( v ) ;
		if( date != null )
		{
			var dateObj = new Date( date ) ;
			str += "; expires=" + dateObj.toGMTString();
		}
		document.cookie = str ;
	}
}