/************************************************************************************************************
	(C) www.dhtmlgoodies.com, October 2005
	
	Version 1.2: Updated, November 12th. 2005
	
	This is a script from www.dhtmlgoodies.com. You will find this and a lot of other scripts at our website.	
	
	Terms of use:
	You are free to use this script as long as the copyright message is kept intact. However, you may not
	redistribute, sell or repost it without our permission.
	
	Thank you!
	
	www.dhtmlgoodies.com
	Alf Magne Kalleland
	
	************************************************************************************************************/		
	var panelWidth = 220;	// Width of help panel	
	var slideSpeed = 15;	// Higher = quicker slide
	var slideTimer = 15;	// Lower = quicker slide
	var slideActive = true;	// Slide active ?
	var initBodyMargin = 0;	// Left or top margin of your <body> tag (left if panel is at the left, top if panel is on the top)
	var pushMainContentOnSlide = false;	// Push your main content to the right when sliding
	var panelPosition = 1; 	// 0 = left , 1 = top
	
	/*	Don't change these values */
	var slideLoginPanelObj=false;
	var slideInProgress = false;	
	var startScrollPos = false;
	var panelVisible = false;
	function initSlideLoginPanel(expandOnly)
	{
		if(slideInProgress)return;
		if(!slideLoginPanelObj){
			if(document.getElementById('loginPanel')){	// Object exists in HTML code?
				slideLoginPanelObj = document.getElementById('loginPanel');
				if(panelPosition == 1)slideLoginPanelObj.style.width = '100%';
			}else{	// Object doesn't exist -> Create <div> dynamically
				slideLoginPanelObj = document.createElement('DIV');
				slideLoginPanelObj.id = 'loginPanel';
				slideLoginPanelObj.style.display='none';
				document.body.appendChild(slideLoginPanelObj);
			}
			
			if(panelPosition == 1){
				slideLoginPanelObj.style.top = "-" + panelWidth + 'px';
				slideLoginPanelObj.style.left = '0px';	
				slideLoginPanelObj.style.height = panelWidth + 'px';			
			}else{
				slideLoginPanelObj.style.left = "-" + panelWidth + 'px';
				slideLoginPanelObj.style.top = '0px';
				slideLoginPanelObj.style.width = panelWidth + 'px';
			}
			

			if(!document.all || navigator.userAgent.indexOf('Opera')>=0)slideLoginPanelObj.style.position = 'fixed';;
		}	
		
		if(panelPosition == 0){
			if(document.documentElement.clientHeight){
				slideLoginPanelObj.style.height = document.documentElement.clientHeight + 'px';
			}else if(document.body.clientHeight){
				slideLoginPanelObj.style.height = document.body.clientHeight + 'px';
			}
			var leftPos = slideLoginPanelObj.style.left.replace(/[^0-9\-]/g,'')/1;
		}else{
			if(document.documentElement.clientWidth){
				slideLoginPanelObj.style.width = document.documentElement.clientWidth + 'px';
			}else if(document.body.clientHeight){
				slideLoginPanelObj.style.width = document.body.clientWidth + 'px';
			}
			var leftPos = slideLoginPanelObj.style.top.replace(/[^0-9\-]/g,'')/1;			
			
			
		}
		slideLoginPanelObj.style.display='block';
		
		if(panelPosition==1){
			 // checken op browser en start pos aanpassen
			 	if(BrowserDetect.browser == "Explorer"){
					startScrollPos = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
				}else if(document.body.clientHeight){
					startScrollPos = 0;//Math.max(document.body.scrollTop,document.documentElement.scrollTop);
				}
			
		}else{
			startScrollPos = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
		}
		if(leftPos<(0+startScrollPos)){
			if(slideActive){
				slideLoginPanel(slideSpeed);	
			
			}else{
				document.body.style.marginLeft = panelWidth + 'px';
				slideLoginPanelObj.style.left = '0px';
			}
		}else{
			if(expandOnly)return;
			if(slideActive){		
				slideLoginPanel(slideSpeed*-1);
			}else{
				if(panelPosition == 0){
					if(pushMainContentOnSlide)document.body.style.marginLeft =  initBodyMargin + 'px';
					slideLoginPanelObj.style.left = (panelWidth*-1) + 'px';	
				}else{
					if(pushMainContentOnSlide)document.body.style.marginTop =  initBodyMargin + 'px';
					slideLoginPanelObj.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){
				slideLoginPanelObj.style.height = document.documentElement.clientHeight + 'px';
			}else if(document.body.clientHeight){
				slideLoginPanelObj.style.height = document.body.clientHeight + 'px';
			}		
		}else{
			if(document.documentElement.clientWidth){
				slideLoginPanelObj.style.width = document.documentElement.clientWidth + 'px';
			}else if(document.body.clientWidth){
				slideLoginPanelObj.style.width = document.body.clientWidth + 'px';
			}	
		}
	}
	
	function slideLoginPanel(slideSpeed){
		slideInProgress =true;
		var scrollValue = 0;
		if(panelPosition==1)
			var leftPos = slideLoginPanelObj.style.top.replace(/[^0-9\-]/g,'')/1;
		else
			var leftPos = slideLoginPanelObj.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){
			slideLoginPanelObj.style.left = leftPos + startScrollPos + 'px';
			if(pushMainContentOnSlide)document.body.style.marginLeft = leftPos - startScrollPos + panelWidth + 'px';
		}else{
			slideLoginPanelObj.style.top = leftPos + 'px';
			if(pushMainContentOnSlide)document.body.style.marginTop = leftPos - startScrollPos + panelWidth + 'px';			
			
		}
		if(okToSlide)setTimeout('slideLoginPanel(' + 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);
			slideLoginPanelObj.style.top = maxValue;
		}else{
			var maxValue = Math.max(document.body.scrollLeft,document.documentElement.scrollLeft);
			slideLoginPanelObj.style.left = maxValue;	
			var maxTop = Math.max(document.body.scrollTop,document.documentElement.scrollTop);
			if(!slideInProgress)slideLoginPanelObj.style.top = (maxTop - (panelVisible?0:panelWidth)) + 'px'; 		
		}
	}
	
	function cancelEvent()
	{
		return false;
	}
	function keyboardShowLeftPanel()
	{
			initSlideLoginPanel();
			return false;	
	
	}
	
	function leftPanelKeyboardEvent(e)
	{
		if(document.all)return;
		
		if(e.keyCode==112){ // F1
			initSlideLoginPanel();
			return false;
		}	
		
		if(e.keyCode==123){ // F12
			initSlideLoginPanel();
			return false;
		}
	}
	
	function setLeftPanelContent(text)
	{
		document.getElementById('loginPanelContent').innerHTML = text;
		initSlideLoginPanel(true);
		
	}
	if(!document.all)document.documentElement.onkeypress = leftPanelKeyboardEvent;
	document.documentElement.onhelp  = keyboardShowLeftPanel;
	
	
	