function clsDHTMLLib(objTop)
{
    var me = this;
    var topWindow = objTop;
    topWindow.dialogCover = new Array();
    if(topWindow == null)
    {
        topWindow = top;
    }
    this.getEventSrcElement = function(e){ element = e.srcElement? e.srcElement : e.target; return  element};
    this.preventDefault     = function(e){ (e.preventDefault) ? e.preventDefault() : e.returnValue = false;}
	this.getEvent           = _getEvent;
	this.getKeyCode         = function(e){ return ((e.charCode || e.charCode == 0) ? e.charCode : e.keyCode);};
	this.getDialog          = _getDialog;
    
    
	this.getWindowPos =	getWindowPos;
	this.getMousePos =	getMousePos;
	this.getScreenCenterPos = _getScreenCenterPos;
	this.getStyleProp   = getStyleProp;
	this.addStyleSheet = AddStyleSheet;
	this.addScript     = _addScript;
	this.removeStyleSheet = removeStyleSheet;
	this.addClass = addClass;
	this.removeClass = removeClass;
	this.bHasClass = bHasClass;
	this.setWaitDisplay = setWaitDisplay;
	this.getWindowPane = getWindowPane
	this.captureMouse = captureMouse;
	this.fixPNG       = _fixPNG;
	
	this.transition     = _transition;

	this.showCustomDialog = _showCustomDialog;
	
	
	
	this.toggleDashBoards = toggleDashBoards;
	//this.InToggle = false;
	this.makePane = makePane;
	this.roundIt  = _roundIt;
	this.applyShadow = _applyShadow;     
	this.changeToButon = _changeToButon;
	
    function getMousePos(e) 
	{
	    var posx = 0;
	    var posy = 0;
	    if (e.pageX || e.pageY)
	    {
		    posx = e.pageX;
		    posy = e.pageY;
	    }
	    else if (e.clientX || e.clientY) 	
	    {
		    posx = e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft;
		    posy = e.clientY + document.body.scrollTop + document.documentElement.scrollTop;
	    }
	    return {"x":posx,"y":posy}
	    // posx and posy contain the mouse position relative to the document
	    // Do something with this information
    }	
	
	function _transition(el, shrink)
    {
        var thisTransition = this;
        this.e = el;
        
        var elementHeight   = parseInt( thisTransition.e.offsetHeight)
        var elementWidth    = parseInt( thisTransition.e.offsetWidth)
        var elementFilter   = el.style.filter;
        var elementOpacity   = el.style.opacity;
        var _bShrink         = (shrink == null)?true:shrink;
        
        var reduceHeight = Math.round(elementHeight / 10)
        var reduceWidth = Math.round(elementWidth / 10)
        
        addClass(thisTransition.e, "shrinkable");
        var opacity      = 100;
        
        
        var intervalId;
        
        this.onHideComplete = null;
        this.onStartAppear = null;
        
        this.hide = function()
        {
            opacity      = 100;
            intervalId  = setInterval(_shrink, 40);
        }

        this.show = function()
        {
            opacity     = 1;
            intervalId  = setInterval(_appear, 40);
        }
        
        
        function _appear()
        {
            //elementWidth += reduceWidth;

            thisTransition.e.style.filter = "alpha(opacity=" + opacity + ")"
            try{thisTransition.e.style.opacity = (opacity / 100)}catch(e){}
            
            if(opacity == 1)
            {
            
                try{thisTransition.onStartAppear()}catch(e){}
            }
            opacity += 8
            
            
            
            if(opacity >= 100)
            {
                removeClass(thisTransition.e, "shrinkable")
                try{thisTransition.e.style.opacity = elementOpacity}catch(e){};
                thisTransition.e.style.filter = elementFilter;
                clearInterval(intervalId);
                try{thisTransition.onHideComplete()}catch(e){}

            }
        }
        
        function _shrink()
        {
            elementHeight -= reduceHeight;
            elementWidth -= reduceWidth;
            if(thisTransition.e != null)
            {
                try
                {
                    if(_bShrink == true)
                    {
                        thisTransition.e.style.height   = elementHeight + "px";       
                    }
                
                    thisTransition.e.style.filter = "alpha(opacity=" + opacity + ")"
                    try{thisTransition.e.style.opacity = (opacity / 100)}catch(e){}
                
                    opacity -= 8
                }catch(e){}
            }
                        
            if(opacity <= 0)
            {
                removeClass(thisTransition.e, "shrinkable")
                //thisTransition.e.style.height = "auto"
                //thisTransition.e.style.width = "auto"
                thisTransition.e.style.filter = elementFilter;
                try{thisTransition.e.style.opacity = elementOpacity}catch(e){};
                clearInterval(intervalId);
                try{thisTransition.onHideComplete()}catch(e){}
            }
            
        }
        
    }

	
	function getWindowPane()
	{
		return '<div class="subwindow" type="windowpane" ><span class="header" type="wp_header">wp_header_title</span><div id="wp_content_id" type="wp_content" class="windowpanecontent"></div></div>'
	}
	
	function setWaitDisplay(objWaitDisplay)
	{
		with (objWaitDisplay)
		{
			id = uniqueID
			style.cssText = "BORDER-RIGHT: 1px outset;PADDING-RIGHT: 30px;    BORDER-TOP: 1px outset;    PADDING-LEFT: 30px;    FONT-SIZE: 16pt;    PADDING-BOTTOM: 30px;    BORDER-LEFT: 1px outset;    CURSOR: wait;    COLOR: black;    PADDING-TOP: 30px;    BORDER-BOTTOM: 1px outset;    POSITION: absolute;    BACKGROUND-COLOR: #7BA2E7;    TEXT-ALIGN: center"				    
			//className = "waitDisplay"
			style.display = "none"
			noWrap = true
			style.setExpression ("top", "(document.body.clientHeight/3) - " + id + ".offsetHeight")
			style.setExpression ("left", "(document.body.clientWidth/2) - (" + id + ".offsetWidth/2)")
			innerHTML = "<img SRC='" + top.helperLib.wsfMapPath("/widgets/statusanimation.gif") + "' ALIGN='absmiddle' HEIGHT='36' WIDTH='36' STYLE='FILTER: invert'> Loading... Please wait."  
		}
	}
	
	function addClass(elItem, sNewClass)
	{
		if (elItem.className.indexOf(sNewClass) >= 0 ) return
		elItem.className += " " + sNewClass
	}

	function removeClass(elItem, sOldClass)
	{
		if (elItem.className.indexOf(sOldClass)>=0) 
		{
			elItem.className = elItem.className.replace(sOldClass,"")
		}
	}

	function bHasClass(elItem, sClass)
	{
		if (elItem.className.indexOf(sClass) >= 0)
			return true;
		else
			return false;
	}


	function removeStyleSheet(sStyleSheetLocation)
	{
		try{
		var w = window
		if (arguments.length>1) w = arguments[1]

		var objLinks = w.document.getElementsByTagName("LINK")
		for (var i=0;i< objLinks.length;i++)
		{
			if (objLinks[i].href == sStyleSheetLocation)
			{
				w.document.removeChild(objLinks[i]);
				break;
			}	
		}
		}catch(e){}
	}

    function _addScript(windowElement, scriptSource)
    {
        var scriptTag   = windowElement.document.createElement("script");
        scriptTag.type  = "text/javascript";
        
        scriptTag.src   = scriptSource;
        windowElement.document.getElementsByTagName("HEAD")[0].appendChild(scriptTag);
    }


	function AddStyleSheet(styleSheetLocation)
	{
		var w = window
		if (arguments.length>1) w = arguments[1]

	    if(w.document.createStyleSheet) 
	    {
            w.document.createStyleSheet(styleSheetLocation);
        }
        else
        {
            //var styles  = "@import url('" + styleSheetLocation + "');";
            var newSS   = w.document.createElement('link');
            newSS.rel   = 'stylesheet';
            newSS.type  = "text/css"
            newSS.href  = styleSheetLocation
            
            newSS = w.document.getElementsByTagName("head")[0].appendChild(newSS);
        }	
	}

	function getWindowPos(element, stopatTagName)
	{
		var rect = new Array()
		rect[0] = 0
		rect[1] = 0
		if(element == null)
		{
		    return rect;
		}
		
		rect[2] = element.offsetWidth;
		rect[3] = element.offsetHeight;

        if(stopatTagName == null)
        {
            stopatTagName  = "body";
        }
        
		if (element.tagName.toLowerCase()!= stopatTagName.toLowerCase())
		{	
		    if(element.offsetParent != null)
		    {
			    var ParentRect = getWindowPos(element.offsetParent, stopatTagName);
			    rect[0] = element.offsetLeft + ParentRect[0];
			    rect[1] = element.offsetTop + ParentRect[1];
			}
			
			rect[1] -= element.scrollTop;
			
			if(window.addEventListener)
			{
			    //alert(getStyleProp(element,"marginTop"));
			}
			
		}
		
		return rect;
	}
		
	function captureMouse(oSource,objWin)
	{
		var objSource = oSource
		var win = objWin
		objSource.onmousemove = moveDragDiv
		var m_offsetX = win.event.offsetX
		var m_offsetY = win.event.offsetY
		var m_bBeginMove = false;
		win.event.cancelBubble = true	
		win.event.returnValue = false
		
		function moveDragDiv()
		{
			try{
			if(!m_bBeginMove)
			{	
				m_bBeginMove = true
				m_offsetX = win.event.offsetX
				m_offsetY = win.event.offsetY
				objSource.setCapture()
				objSource.onmouseup = releaseMouse
				return
			}
			if(win.event.button!=1)
			{
				objSource.releaseCapture()			
				return
			}
			objSource.style.left = win.event.clientX - m_offsetX
			objSource.style.top = win.event.clientY - m_offsetY
			win.event.cancelBubble = true	
			win.event.returnValue = false
			}catch(e){alert("dhtmllib.moveDragDiv:" + e.message)}
		}
		
		function releaseMouse()
		{
			objSource.onmousemove = null
			objSource.onmouseup = null
			objSource.releaseCapture() 
			objSource = null
			win = null
		}

	}
	
	
	
	//function for retrieving the event object
	function _getEvent(window, calleeArguments)
	{
	    var evt ;
	    
	    try{
	    evt = window.event;
	    }catch(e){}
	    
	    if(!evt)
	    {
	        try{
	        
	        for(var i= 0; i<10; i++)
	        {
	            evt = calleeArguments.callee.caller.arguments[0]
	            if(evt && evt.constructor.toString().indexOf("Event]") > 0)
	            {
	                break;
	            }
	            calleeArguments = calleeArguments.callee.caller.arguments
	        }
	        //evt = calleeArguments.callee.caller.arguments[0];
	        }catch(e){}
	    }

	    return evt;
	}
	
	//functions for creating a custom modal dialog
	function _getDialog()
	{
	    var obj = {};
	    
	    if(topWindow.dialogStack != null)
	    {
	        obj             = topWindow.dialogStack[topWindow.dialogStack.length - 1];
	        obj.arguments   = obj.dialogArguments;
        }
        else if(topWindow.dialogArguments)
	    {
	        obj           = top;
	        obj.arguments = topWindow.dialogArguments;
	        
	    }
	    return obj;
	}
	
    function _setFocusToOpenedDialog()
    {
        //if (topWindow.dialog.windowRef)
        //{
        //    topWindow.dialog.windowRef.focus();
        //}
    }	
	
	
    function _createCover(allowtransparency)
    {
        var coverFrame =  topWindow.document.createElement("iframe");  
        coverFrame.src = top.helperLib.wsfMapPath("/mc/blank.htm");
        coverFrame.frameBorder = "0";
        coverFrame.className = "coverFrame " + allowtransparency;
        coverFrame.allowTransparency = true;
        top.helperLib.attachEvents(topWindow, coverFrame, "onload", function(e)
                                                                            {
                                                                             coverFrame.contentWindow.document.body.style.backgroundColor = "transparent";
                                                                              coverFrame.contentWindow.document.body.style.backgroundImage = "url(" + top.helperLib.wsfMapPath("/widgets/assets/spacer.gif") + ")";
                                                                                topWindow.helperLib.attachEvents(topWindow, coverFrame.contentWindow.document, "click", _setFocusToOpenedDialog);
                                                                            });
        //coverFrame.addEventListener("load", f, false);
        
        topWindow.document.body.appendChild(coverFrame);
        topWindow.dialogCover[topWindow.dialogCover.length] = coverFrame;
        coverFrame.style.zIndex = 200 + topWindow.dialogCover.length;        
    }

    function _clearDialog()
    {
        if(topWindow.dialogStack)
        {
            var dialog = topWindow.dialogStack[topWindow.dialogStack.length - 1];
            
            dialog.callBackRef = null;
            dialog.callBackArguments = null;
            dialog.returnValue = null;
            dialog.container.parentNode.removeChild(dialog.container)
            dialog = null;
            
            topWindow.dialogStack.splice(topWindow.dialogStack.length - 1, 1)
            var coverFrame = topWindow.dialogCover[topWindow.dialogCover.length - 1]
            coverFrame.style.display = "none";
            coverFrame.parentNode.removeChild(coverFrame);
            topWindow.dialogCover.splice(topWindow.dialogCover.length - 1, 1);

            if(topWindow.dialogStack.length == 0)
            {
                topWindow.dialogStack = null;
            }
            else
            {
                topWindow.dialogStack[topWindow.dialogStack.length - 1].container.style.display = "block";
            }
        }

    }

    function _dialogUnload(evt)
    {
        if(topWindow.dialogStack)
        {
            var dialog = topWindow.dialogStack[topWindow.dialogStack.length - 1];
            try
            {
                if(dialog.callBackRef)
                {
                    dialog.callBackRef(dialog.returnValue, dialog.callBackArguments);
                }
            }
            catch(e){}
            _clearDialog();
        }
    }

/*    function _addDialogEvents(evt)
    {
        top.helperLib.attachEvents(topWindow, topWindow.dialog.windowRef, "unload", _dialogUnload)
        top.helperLib.attachEvents(topWindow, topWindow, "unload", _dialogUnload)
    }
*/

    function _getScreenCenterPos(windowref, width, height)
    {
        var scrolledX, scrolledY; 
        if( windowref.self.pageYOffset ) 
        { 
            scrolledX = windowref.self.pageXOffset; 
            scrolledY = windowref.self.pageYOffset; 
        } 
        else if( windowref.document.documentElement && document.documentElement.scrollTop ) 
        { 
            scrolledX = windowref.document.documentElement.scrollLeft; 
            scrolledY = windowref.document.documentElement.scrollTop; 
        } 
        else if( document.body ) 
        { 
            scrolledX = windowref.document.body.scrollLeft; 
            scrolledY = windowref.document.body.scrollTop; 
        } 

    
        var centerX, centerY; 
        if( self.innerHeight ) 
        { 
            centerX = self.innerWidth; 
            centerY = self.innerHeight; 
        } 
        else if( windowref.document.documentElement && windowref.document.documentElement.clientHeight ) 
        { 
            centerX = windowref.document.documentElement.clientWidth; 
            centerY = windowref.document.documentElement.clientHeight; 
        } 
        else if( document.body ) 
        { 
            centerX = windowref.document.body.clientWidth; 
            centerY = windowref.document.body.clientHeight; 
        } 
        return {"x":scrolledX + (centerX - width) / 2 , "y": scrolledY + (centerY - height) / 2 }
    }

	function _showCustomDialog(windowRef, dialogArguments, showCustomDialog, allowtransparency)
	{

	        _createCover(allowtransparency);

            if(topWindow.dialogStack == null)
            {
                topWindow.dialogStack = new Array();
            }
            /*else
            {
                topWindow.dialogStack[topWindow.dialogStack.length - 1].container.style.display = "none";
            }*/

            var dialog = {};
            dialog.close = _dialogUnload;
            
            dialog.container = topWindow.document.createElement("div");
            topWindow.document.body.appendChild(dialog.container);
            
            dialog.container.style.display = "block";
            dialog.container.style.cssText = dialogArguments;
            dialog.container.style.zIndex = 200 + topWindow.dialogCover.length ;
            dialog.container.style.position = "absolute";
            
            var centerPosition = _getScreenCenterPos(topWindow, dialog.container.offsetWidth, dialog.container.offsetHeight)
            
            dialog.container.style.top = centerPosition.y + "px"
            dialog.container.style.left = centerPosition.x + "px"
            
            topWindow.dialogCover[topWindow.dialogCover.length - 1].style.display = "block";
            
	        dialog.returnValue            = null;
	        
	        topWindow.dialogStack[topWindow.dialogStack.length] = dialog;
	        
	        return dialog;
	}
	
	

	//rounded panes
	function makePane(sId,sTitle,sContent,styleAttrib,iExcessPadding,sMode,defaultShowMode)
	{
		if(defaultShowMode == null)
		{
			defaultShowMode = "open";
		}
		if(sMode ==null)
		{
			sMode = "closing";
		}
		if(iExcessPadding==null)
		{
			iExcessPadding = 14;
        }
        
		if(styleAttrib==null)styleAttrib = "";
		var arrStyle = styleAttrib.split(";")
		var sWidth
		for(var i=0;i<arrStyle.length;i++)
		{
			var arrPV = arrStyle[i].split(":")
			
			try{
			if(arrPV[0].toLowerCase() =="width")
			{
				sWidth=parseInt(arrPV[1]) + iExcessPadding
				break;
			}}catch(e){}
		}
		
		if(sWidth==null)
		{
			sWidth = "100%";
		}

		
		if(sMode == "closing")
		{
			sMode = "<span style='padding-right:10px;cursor:hand'><img id='" + sId + "_toggleImage' src='" + top.helperLib.wsfMapPath("/widgets/assets/")  + (defaultShowMode=='open'?'closepane.gif':'openpane.gif') + "'  onclick='top.DHTMLLib.toggleDashBoards(this)' align='absmiddle' ></span>";
        }
		else
		{
			sMode = "";
		}
		
		if(sTitle!=null)
			sTitle = '<span class="paneTitle">' + sTitle + '</span>'
		else
			sTitle =""
			
		if(sMode.length>0 || sTitle.length>0)
		{
			sTitle = '<div style="padding:2px;z-index:1" >' + sMode + sTitle + '</div>'
		}	
			
		var sDashPaneHTML =	'<div class="dashpane" id="db_' + sId + '" style="position:relative;width:' + sWidth + 'px;">'		
		sDashPaneHTML +=	'<b class="xtop"><b class="xb1"></b><b class="xb2"></b><b class="xb3"><b class="xb31"></b></b><b class="xb4"><b class="xb41"></b></b></b>'
		sDashPaneHTML +=	'<div class="xboxcontent"><b class="xbc1">'
		sDashPaneHTML +=	sTitle
		sDashPaneHTML +=	'<div id="' + sId + '_dc" class="dashcontainer" style="#styleAttributes#' + (defaultShowMode=="open"?"":";display:none;") + '">'
		sDashPaneHTML +=	'#content#'
		sDashPaneHTML +=	'</div>'
		sDashPaneHTML +=	'</b></div>'
		sDashPaneHTML +=	'<b class="xbottom"><b class="xb4"><b class="xb41"></b></b><b class="xb3"><b class="xb31"></b></b><b class="xb2"></b><b class="xb1"></b></b>'
		sDashPaneHTML +=	'</div>'		
		sDashPaneHTML = sDashPaneHTML.replace("#Title#",sTitle)
		sDashPaneHTML = sDashPaneHTML.replace("#content#",sContent)
		sDashPaneHTML = sDashPaneHTML.replace("#styleAttributes#",styleAttrib)

		return sDashPaneHTML;
	}

    function _changeToButon(divToChange, buttonType, w)
    {
        var parentDiv = divToChange.parentNode.insertBefore(w.document.createElement("div"),divToChange);
        
        parentDiv.className = "buttoncontainer";
        parentDiv.innerHTML = "<div class='button " + buttonType + "'></div>";
        //parentDiv.innerHTML = "<div class='right'><!-- --></div>";
        parentDiv.firstChild.appendChild(divToChange);
        rightDiv = parentDiv.firstChild.appendChild(w.document.createElement("div"));
        
        addClass(rightDiv, "right");
        addClass(divToChange,"content")
    }

    function _applyShadow(o,bgColor, className)
    {
        if(bgColor != null)
        {
            bgColor = 'style="background-color:' + bgColor + '"'
        }
        else
        {
            bgColor = ""
        }
        
        if(className == null)className = "";

        
        var shadowHtml =  '<table cellpadding="0" cellspacing="0" class="shadow ' + className + '"><tr><td><div ><div class="topleft"><div class="topright"><div class="whiteplaceholder" #bgcolor#></div></div></div>' +
                        '<div class="left-tile"><div class="right-tile"></div></div>' +
                        '<div class="bottom-left"><div class="bottom-right"><div class="bottom-tile"></div></div></div>' +
                        '</div></td></tr></table>'

        shadowHtml = shadowHtml.replace(/#bgcolor#/g, bgColor)
        o.insertAdjacentHTML("beforeBegin", shadowHtml)
        var t = o.previousSibling
        t.rows[0].cells[0].childNodes[0].childNodes[1].childNodes[0].appendChild(o)

    }

    function _roundIt(o, w, bgcolor,onlyTop, onlyBottom, outerOrInner)
    {
        //divName = "div1"
        if(!bgcolor)bgcolor = "#F6F5F5"
        
        if(typeof(o) == "string")
        {
            o = w.document.getElementById(o);
        }
        
        if(!o) return;
        //o.style.backgroundColor = getMiddleColor(o.style.backgroundColor, bgcolor);
        var borderColor = 'style="border-color:' + bgcolor + ';"';
        
        offsetWidth = o.offsetWidth;

        if(onlyBottom != true)
        {
            var topCorners = w.document.createElement("b");
            topCorners.innerHTML = '<b class="c1" ' + borderColor + '></b><b class="c2" ' + borderColor + ' ></b><b class="c3" ' + borderColor + '></b><b class="c4" ' + borderColor + '></b>'
            topCorners.className = "corners tc"

            topCorners.style.marginRight = "-" + getStyleProp(o, "paddingRight");
            topCorners.style.marginBottom = (parseInt(getStyleProp(o, "paddingTop")) - 4) + "px";
            topCorners.style.marginLeft  = "-" + getStyleProp(o, "paddingLeft");
            topCorners.style.position = "relative";

            if(outerOrInner == "outer")
            {
                topCorners.style.zIndex = 2;
            }
            else
            {
                topCorners.style.zIndex = 1;
            }
            
            
            o.insertBefore(topCorners, o.childNodes[0])
            
            topCorners.style.width    = offsetWidth;
            //topCorners.style.width    = "100%"
        }        
        
        if(onlyTop != true)
        {
            var bottomCorners = w.document.createElement("b");
            bottomCorners.innerHTML = '<b class="c4" ' + borderColor + '></b><b class="c3" ' + borderColor + '></b><b class="c2" ' + borderColor + '></b><b class="c1" ' + borderColor + '></b>'
            bottomCorners.className = "corners bc"
            bottomCorners.style.marginRight = "-" + getStyleProp(o, "paddingRight");
            bottomCorners.style.marginTop = (parseInt(getStyleProp(o, "paddingBottom")) - 4) + "px";
            bottomCorners.style.marginLeft  = "-" + getStyleProp(o, "paddingLeft");
            bottomCorners.style.position = "relative";
            
            if(outerOrInner == "outer")
            {
                bottomCorners.style.zIndex = 2;
            }
            else
            {
                bottomCorners.style.zIndex = 1;
            }
            
            o.appendChild(bottomCorners)
            bottomCorners.style.width = offsetWidth;
            //bottomCorners.style.width    = "100%"
        }
        
        
        o.style.display = "inline-block";
        
        o.style.paddingTop = "0px";
        o.style.paddingBottom = "0px";
        

        
    }
    
    function getStyleProp(x,prop)
    {
        if(x.currentStyle)
            return(x.currentStyle[prop]);
        if(document.defaultView.getComputedStyle)
            return(document.defaultView.getComputedStyle(x,'')[prop]);
        return(null);
    }    
	
	function toggleDashBoards(objUnKnown)
	{

//		if(me.InToggle==true) return
//		me.InToggle = true	
		
		function outQuint(iTimeElapsed,iActualHeight,iTickerDuration)
		{
			iTimeElapsed = iTimeElapsed / iTickerDuration - 1 // gives you the percentage of time left
			return Math.round(iActualHeight * (iTimeElapsed * iTimeElapsed * iTimeElapsed * iTimeElapsed * iTimeElapsed + 1) + (0 - iActualHeight)) ;			
		}
		
		function smoothOpen()
		{
			if(parseInt(pane.body.ScrollPosition) >= 0 )
			{
				clearInterval(vInterVal)
//				me.InToggle = false
				return 
			}
			if(timeElapsed == 16)
			{
				if(pane.body.actualHeight != pane.body.offsetHeight)
				{
					pane.body.actualHeight = pane.body.offsetHeight 
				}
				
            }
			timeElapsed += 16
			var iNewTop = outQuint(timeElapsed,pane.body.actualHeight ,tickerDuration);
			pane.body.ScrollPosition     = iNewTop;
			pane.body.style.top          = iNewTop + "px";
			pane.element.style.height = (pane.element.closedHeight + (pane.body.actualHeight + iNewTop)) + "px";
		}
	
		function smoothClose()
		{
		    try{
			    if(pane.body.ScrollPosition < (0-pane.body.actualHeight))
			    {
				    clearInterval(vInterVal);
				    pane.body.style.display = "none";	
				    pane.element.style.height = (pane.element.closedHeight)+ "px";
				    
				    //me.InToggle = false
				    return 
			    }
			    timeElapsed += 16;
			    var iNewTop = outQuint(tickerDuration - timeElapsed,pane.body.actualHeight ,tickerDuration);
			    pane.body.ScrollPosition = iNewTop; 
			    pane.body.style.top      = iNewTop + "px";
			    var iParentHeight = pane.element.closedHeight + (pane.body.actualHeight + iNewTop);
			    if(iParentHeight < 0) iParentHeight = pane.element.closedHeight; 
			    
			    pane.element.style.height = iParentHeight + "px";
		    }
		    catch(e){}
		}	
		
		var timeElapsed=0, tickerDuration = 200
		
		var pane            = {};
		pane.titleElement   = objUnKnown;
		pane.toggleImage    = top.XMLLib.getNodeFirstChild(pane.titleElement);
		pane.element        = pane.titleElement.parentNode;
		pane.body           = top.XMLLib.getNodeNextSibling(pane.titleElement);
		var vInterVal
		
		
		if(pane.toggleImage.className.indexOf("closed") >= 0)
		{
			pane.element.style.overflowY    = "hidden";
			pane.element.style.overflow     = "hidden";
			
			if(!pane.element.getAttribute("closedHeight"))
			{
			    var excludeBorder = 0;
			    
			    var borderTopWidth = parseInt(getStyleProp(pane.element, "borderTopWidth"));
			    
			    if(!isNaN(borderTopWidth))
			    {
			        excludeBorder += borderTopWidth;
			    }
			    
			    var borderBottomWidth = parseInt(getStyleProp(pane.element, "borderBottomWidth"));
			    
			    if(!isNaN(borderBottomWidth))
			    {
			        excludeBorder += borderBottomWidth;
			    }
			    
			    pane.element.setAttribute("closedHeight", pane.element.offsetHeight - excludeBorder);
            }
            
            

			pane.element.style.height           = pane.element.closedHeight + "px";
			//alert()
			pane.body.style.display              = "block";
			pane.body.style.visibility           = "hidden";
			pane.body.actualHeight               = pane.body.offsetHeight;
			pane.body.ScrollPosition             = (0 - pane.body.maxPosition);
			pane.body.style.top                  = (0 - pane.body.actualHeight) + "px";
			pane.body.style.visibility           = "visible";
			
			
			vInterVal = setInterval(smoothOpen, 16);
			
			removeClass(pane.toggleImage, "closed");
			addClass(pane.toggleImage, "open");

		}
		else
		{
		    removeClass(pane.toggleImage, "open");
			addClass(pane.toggleImage, "closed");
			pane.body.actualHeight = pane.body.offsetHeight;
			pane.body.ScrollPosition = 0;
			pane.body.parentNode.style.overflowY = "hidden";
			if(!pane.element.closedHeight)
			{
			    pane.element.closedHeight = pane.element.offsetHeight - pane.element.actualHeight
			}
			
			vInterVal = setInterval(smoothClose, 16);
		}
	}		
	
	
    function _fixPNG(objwindow) 
    {
        var arVersion = navigator.appVersion.split("MSIE");
        var version = parseFloat(arVersion[1]);
        
        var doc = objwindow == null ? topWindow.document : objwindow.document;
        var shim = top.helperLib.wsfMapPath("/widgets/assets/spacer.gif")
        
        if ((version >= 5.5) && (version < 7) && (doc.body.filters)) 
        {
            var pageImages = doc.getElementsByTagName("IMG");
            
            for(var i = 0; i < pageImages.length; i++)
            {
               var myImage = pageImages[i];
               if(myImage.src.indexOf(".png") > 0)
               {
                   var imgID = (myImage.id) ? "id='" + myImage.id + "' " : "";
                   var imgClass = (myImage.className) ? "class='" + myImage.className + "' " : "";
                   var imgTitle = (myImage.title) ? "title='" + myImage.title  + "' " : "title='" + myImage.alt + "' ";
                   var imgStyle = "display:inline-block;" + myImage.style.cssText;
                   var strNewHTML = "<div " + imgID + imgClass + imgTitle
                              + " style=\"" + "width:" + myImage.width 
                              + "px; height:" + myImage.height 
                              + "px;" + imgStyle + ";"
                              + "filter:progid:DXImageTransform.Microsoft.AlphaImageLoader"
                              + "(enabled='true', src=\'" + myImage.src + "\');\"></div>"
                   
                   myImage.outerHTML = strNewHTML;
                }                   
                
            }
            
            for(var i = doc.all.length - 1 , obj = null; (obj = doc.all[i]); i--)
            {
                if (obj.currentStyle.backgroundImage.match(/\.png/i) !== null) 
                {
            		var mode = 'scale';
		            var bg	= obj.currentStyle.backgroundImage;
		            var src = bg.substring(5 ,bg.length-2);
		            if (obj.currentStyle.backgroundRepeat == 'no-repeat') 
		            {
			            mode = 'crop';
		            }
		            
		            obj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + src + "', sizingMethod='" + mode + "')";
		            obj.style.backgroundImage = 'url('+shim+')';
                }
            }
        }
        
    }

}
