 // ------------[+]-- DynamicHTML SlideMenu 

// ------------[+]-- Copyright (C) 2002- HP-DESIGN.NET. 

// ------------[+]-- Takeru [ http://hp-design.net/ ] 

// No reproduction , no republication without written permission of HP-DESIGN.NET 

// Must not delete this copyright in order to use this script 



function initSlideMenu(id,subid,top,left,mtop,mbottom) {



	this.id = getObjectById(id) ;

	this.subid = getObjectById(subid,id);

	this.divw = ( _bw.opera ) ? getObjectWidth(this.id) : getObjectWidth(this.subid) ;

	this.divh = ( _bw.opera ) ? getObjectWidth(this.id) : getObjectHeight(this.subid) ;



	this.topY = this.currentY = top ? top : 0 ;

	this.leftX = left ? left : 20 ;

	this.currentX = this.minX = this.leftX - this.divw ;



	this.mTop = mtop ? mtop : 0 ;

	this.mBottom = mbottom ? mbottom : 0 ;

	this.opened = 0 ; this.xflag = 0 ; this.timerID = 1 ;

	this.setup = setSlideMenu ;

	this.flag = false ;

	return this ;

}



var oSlideMenu ; 

function SlideMenu(id,subid,top,left,mtop,mbottom) { 

	if( _bw.ie4up || _bw.net4up || _bw.opera6 ) { 

		oSlideMenu = new initSlideMenu(id,subid,top,left,mtop,mbottom) ;

		oSlideMenu.flag = 1 ; oSlideMenu.setup() ; 

		moveySlideMenu() ;

	} 

}



function setSlideMenu() {

	this.currentX = this.leftX - this.divw ;

	if( !_bw.opera ){

		setObjectSizeTo( this.id , this.divw , this.divh ) ;

		setClipTo( this.id , 0 , this.divw , this.divh , 0 ) ;

	}

	setObjectTo( this.id , this.currentX , this.topY ) ;

	setObjectVisibility( this.id , 1 ) ;

}



function openSlideMenu() {

	if( oSlideMenu.flag ) { oSlideMenu.xflag = 1 ; movexSlideMenu() }

}



function movexSlideMenu() { 

	var pal = oSlideMenu ;

	if( pal.xflag ){

		var vx = ( !pal.opened ) ? 

			pal.currentX * 0.25 : ( pal.minX - pal.currentX ) * 0.25 ;

		if( Math.abs(vx) < 1 ) { vx = ( vx > 0 ) ? 1 : ( vx < 0 ) ? -1 : 0 }

		pal.currentX = ( !pal.opened ) ? 

			pal.currentX - Math.round(vx) : pal.currentX + Math.round(vx) ;



		var flag = ( !pal.opened ) ? ( pal.currentX >= 0 ) ? 1 : 0 :

				( pal.currentX <= pal.minX ) ? 1 : 0 ;

		if( flag ) { pal.xflag = 0 ; 

			pal.currentX = ( !pal.opened ) ? 0 : pal.minX ;

			pal.opened = ( !pal.opened ) ? 1 : 0 ;

			clearTimeout( pal.timerID ) ;

		} setObjectTo( pal.id , pal.currentX , pal.currentY ) ;

		pal.timerID = setTimeout('movexSlideMenu()', 20) 

	}

}



function moveySlideMenu() { 

	var pal = oSlideMenu ; 

	var winh = getWindowHeight() ; var yt = getScrollY() ;



	if( winh >= pal.divh ) {

		if( winh >= pal.mTop + pal.divh + pal.mBottom ) {

			yt = Math.max( yt + pal.mTop , pal.topY ) ;

		} else {

			var yt1 = Math.max( yt + pal.mTop, pal.topY ) ;

			var f1 = ( yt1 > pal.currentY ) ? 1 : 0 ;

			var yt2 = yt - ( pal.divh + pal.mBottom - winh ) ;

			yt2 = Math.max( yt2, pal.topY ) ;

			var f2 = ( yt2 < pal.currentY ) ? 1 : 0 ;

			if ( f1 && f2 ) { yt = pal.currentY }

			else { yt = f2 ? Math.max( yt1 , yt2 ) : Math.min( yt1 , yt2 ) }

		}

		if( yt != pal.currentY ) {

			var vy = ( yt - pal.currentY ) * 0.25 ;

			if ( Math.abs(vy) < 1 ) { vy = (vy > 0) ? 1 : (vy < 0) ? -1 : 0 }

			pal.currentY += Math.round( vy );

			setObjectTo( pal.id , pal.currentX , pal.currentY ) ;

		}

	} setTimeout('moveySlideMenu()', 20);

}



