var panelWidth = 150;        // Width of help panel
        var slideSpeed = 15;                // Higher = quicker slide
        var slideTimer = 10;        // Lower = quicker slide
        var slideActive = true;        // Slide active ?
        var initBodyMargin = 0;        // Left or top margin
        var pushMainContentOnSlide = false;        // Push your main content to the right when sliding
        var panelPosition = 0;         // 0 = left , 1 = top

        var slideLeftPanelObj=false;
        var slideInProgress = false;
        var startScrollPos = false;
        var panelVisible = false;
        function initSlideLeftPanel(expandOnly)
        {
                if(slideInProgress)return;
                if(!slideLeftPanelObj){
                        if(document.getElementById('dhtmlgoodies_leftPanel')){        // Object exists in HTML code?
                                slideLeftPanelObj = document.getElementById('dhtmlgoodies_leftPanel');
                                if(panelPosition == 1)slideLeftPanelObj.style.width = '100%';
                        }else{        // Object doesn't exist -> Create <div> dynamically
                                slideLeftPanelObj = document.createElement('DIV');
                                slideLeftPanelObj.id = 'dhtmlgoodies_leftPanel';
                                slideLeftPanelObj.style.display='none';
                                document.body.appendChild(slideLeftPanelObj);
                        }

                        if(panelPosition == 1){
                                slideLeftPanelObj.style.top = "-" + panelWidth + 'px';
                                slideLeftPanelObj.style.left = '0px';
                                slideLeftPanelObj.style.height = panelWidth + 'px';
                        }else{
                                slideLeftPanelObj.style.left = "-" + panelWidth + 'px';
                                slideLeftPanelObj.style.top = '0px';
                                slideLeftPanelObj.style.width = panelWidth + 'px';
                        }


                        if(!document.all || navigator.userAgent.indexOf('Opera')>=0)slideLeftPanelObj.style.position = 'fixed';;
                }

                if(panelPosition == 0){
                        if(document.documentElement.clientHeight){
                                slideLeftPanelObj.style.height = document.documentElement.clientHeight + 'px';
                        }else if(document.body.clientHeight){
                                slideLeftPanelObj.style.height = document.body.clientHeight + 'px';
                        }
                        var leftPos = slideLeftPanelObj.style.left.replace(/[^0-9\-]/g,'')/1;
                }else{
                        if(document.documentElement.clientWidth){
                                slideLeftPanelObj.style.width = document.documentElement.clientWidth + 'px';
                        }else if(document.body.clientHeight){
                                slideLeftPanelObj.style.width = document.body.clientWidth + 'px';
                        }
                        var leftPos = slideLeftPanelObj.style.top.replace(/[^0-9\-]/g,'')/1;


                }
                slideLeftPanelObj.style.display='block';

                if(panelPosition==1)
                        startScrollPos = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
                else
                        startScrollPos = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
                if(leftPos<(0+startScrollPos)){
                        if(slideActive){
                                slideLeftPanel(slideSpeed);

                        }else{
                                document.body.style.marginLeft = panelWidth + 'px';
                                slideLeftPanelObj.style.left = '0px';
                        }
                }else{
                        if(expandOnly)return;
                        if(slideActive){
                                slideLeftPanel(slideSpeed*-1);
                        }else{
                                if(panelPosition == 0){
                                        if(pushMainContentOnSlide)document.body.style.marginLeft =  initBodyMargin + 'px';
                                        slideLeftPanelObj.style.left = (panelWidth*-1) + 'px';
                                }else{
                                        if(pushMainContentOnSlide)document.body.style.marginTop =  initBodyMargin + 'px';
                                        slideLeftPanelObj.style.top = (panelWidth*-1) + 'px';
                                }
                        }
                }

                if(navigator.userAgent.indexOf('MSIE')>=0 && navigator.userAgent.indexOf('Opera')<0){
                        window.onscroll = repositionHelpDiv;

                        repositionHelpDiv();
                }
                window.onresize = resizeLeftPanel;

        }

        function resizeLeftPanel()
        {
                if(panelPosition == 0){
                        if(document.documentElement.clientHeight){
                                slideLeftPanelObj.style.height = document.documentElement.clientHeight + 'px';
                        }else if(document.body.clientHeight){
                                slideLeftPanelObj.style.height = document.body.clientHeight + 'px';
                        }
                }else{
                        if(document.documentElement.clientWidth){
                                slideLeftPanelObj.style.width = document.documentElement.clientWidth + 'px';
                        }else if(document.body.clientWidth){
                                slideLeftPanelObj.style.width = document.body.clientWidth + 'px';
                        }
                }
        }

        function slideLeftPanel(slideSpeed){
                slideInProgress =true;
                var scrollValue = 0;
                if(panelPosition==1)
                        var leftPos = slideLeftPanelObj.style.top.replace(/[^0-9\-]/g,'')/1;
                else
                        var leftPos = slideLeftPanelObj.style.left.replace(/[^0-9\-]/g,'')/1;

                leftPos+=slideSpeed;
                okToSlide = true;
                if(slideSpeed<0){
                        if(leftPos < ((panelWidth*-1) + startScrollPos)){
                                leftPos = (panelWidth*-1) + startScrollPos;
                                okToSlide=false;
                        }
                }
                if(slideSpeed>0){
                        if(leftPos > (0 + startScrollPos)){
                                leftPos = 0 + startScrollPos;
                                okToSlide = false;
                        }
                }


                if(panelPosition==0){
                        slideLeftPanelObj.style.left = leftPos + startScrollPos + 'px';
                        if(pushMainContentOnSlide)document.body.style.marginLeft = leftPos - startScrollPos + panelWidth + 'px';
                }else{
                        slideLeftPanelObj.style.top = leftPos + 'px';
                        if(pushMainContentOnSlide)document.body.style.marginTop = leftPos - startScrollPos + panelWidth + 'px';

                }
                if(okToSlide)setTimeout('slideLeftPanel(' + slideSpeed + ')',slideTimer); else {
                        slideInProgress = false;
                        if(slideSpeed>0)panelVisible=true; else panelVisible = false;
                }

        }


        function repositionHelpDiv()
        {
                if(panelPosition==0){
                        var maxValue = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
                        slideLeftPanelObj.style.top = maxValue;
                }else{
                        var maxValue = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
                        slideLeftPanelObj.style.left = maxValue;
                        var maxTop = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
                        if(!slideInProgress)slideLeftPanelObj.style.top = (maxTop - (panelVisible?0:panelWidth)) + 'px';
                }
        }

        function cancelEvent()
        {
                return false;
        }
        function keyboardShowLeftPanel()
        {
                        initSlideLeftPanel();
                        return false;

        }

        function leftPanelKeyboardEvent(e)
        {
                if(document.all)return;

                if(e.keyCode==112){
                        initSlideLeftPanel();
                        return false;
                }
        }

        function setLeftPanelContent(text)
        {
                document.getElementById('leftPanelContent').innerHTML = text;
                initSlideLeftPanel(true);

        }
        if(!document.all)document.documentElement.onkeypress = leftPanelKeyboardEvent;
        document.documentElement.onhelp  = keyboardShowLeftPanel;