var panelWidth 				= SlidepanelWidth;
var slideSpeed 				= SlidepanelSpeed;
var slideTimer 				= 10;
var slideActive 			= SlidepanelActive;
var initBodyMargin 			= 0;
var pushMainContentOnSlide 	= SlidepanelPushMain;
var panelPosition 			= SlidepanelPosition;
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')){
			slideLeftPanelObj = document.getElementById('dhtmlgoodies_leftPanel');
			if(panelPosition == 1)slideLeftPanelObj.style.width = '100%';
		}else{
			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;
