
/******************************/
/*****  CONFIG SETTINGS  *****/
/******************************/

	var peelContinuousMoving		= false;

	/* DIMENSIONS */
	var peelOpenHeight 				= 285;
	var peelOpenWidth 				= 286;
	var peelClosedHeight 			= 80;
	var peelClosedWidth 			   = 80;
	var peelShadowOpenHeight		= 9;
	var peelShadowClosedHeight		= 3;

	/* TIMING */
	var peelCloseDuration 			= 0.3;
	var peelOpenDuration 			= 0.3;


/*******************************************/
/*****  DO NOT EDIT BELOW THIS LINE  *****/
/*******************************************/

var peelSliding 				= 0;
var peelOpen 					= 0;
var continuousMove1				= null;
var continuousMove2				= null;
var peelHasToClose				= false;

// Set is peelSliding value
function peelSetSliding(ISliding){
	peelSliding = ISliding;
}

// Get is peelSliding value
function peelGetSliding(){
	return peelSliding;
}

// Set is peelOpen value
function peelSetOpen(ISopen){
	peelOpen = ISopen;
}

// Get is peelOpen value
function peelGetOpen(){
	return peelOpen;
}

function isChildOf(ChildObject,ContainerObject) {
    var retval=false; 
    var curobj; 
    curobj=ChildObject.parentNode; 
    while(curobj!=undefined) 
    {   
        if(curobj==ContainerObject)
        {
            retval = true;
            break;
        }
        curobj=curobj.parentNode;
    } 
    return retval; 
} 

function initPagePeel() {
	Event.observe('pagePeelHolder', 'mouseover', openPeel, false);
	Event.observe('pagePeelHolder', 'mouseout', closePeel, false);
	Event.observe(document, 'mousemove', closePeel, false);
	
	if(peelContinuousMoving) {
		peelContinuousMove();
	}
}

function cancelContinuousMoving() {
	continuousMove1.cancel();
	continuousMove2.cancel();
}

function peelContinuousMove(state) {
	
	if ( peelGetSliding() == 0 && peelGetOpen() == 0) {
	
		if(state == 'open') {
			var newWidth 					= peelClosedWidth;
			var newHeightPeelContentHolder 	= peelClosedHeight;
			var newHeightPeelCorner 		= peelClosedHeight + peelShadowClosedHeight;
			
			var peelContentDelay 			= 0;
			var peelCornerDelay				= 0.02;
			
			var newState 					= 'closed';
			var peelDelay 					= 0;
			var peelDuration				= 0.5;

		} else {
			var newWidth 					= peelClosedWidth + 4;
			var newHeightPeelContentHolder 	= peelClosedHeight + 4;
			var newHeightPeelCorner 		= (peelClosedHeight + 4) + peelShadowClosedHeight;
			
			var peelContentDelay 			= 0.02;
			var peelCornerDelay				= 0;
			
			var newState 					= 'open';
			var peelDelay 					= 1;
			var peelDuration				= 0.3;
		}
		
		continuousMove1 = new Effect.Morph($('pagePeelContentHolder'),
			{
				style: 'height:'+(newHeightPeelContentHolder)+'px; width:'+newWidth+'px;',
				transition: Effect.Transitions.sinoidal, 
				duration: peelDuration,
				delay: peelDelay + peelContentDelay,
				afterFinish: function() { 
					if ( peelGetSliding() == 0 && peelGetOpen() == 0) {
						peelContinuousMove(newState);
					}
				}
			}
		);
	
		continuousMove2 = new Effect.Morph($('pagePeelCorner'),
			{
				style: 'height:'+(newHeightPeelCorner)+'px; width:'+newWidth+'px;',
				transition: Effect.Transitions.sinoidal, 
				duration: peelDuration,
				delay: peelDelay + peelCornerDelay
			}
		);
	} 
}

function openPeel(evt) {
	el = Event.element(evt);
	if (isChildOf(el,$('pagePeelHolder'))) {	
		if ( peelGetSliding() == 0 && peelGetOpen() == 0) {
			
			if(peelContinuousMoving) {
				cancelContinuousMoving();
			}
			
			peelSetSliding( 1 );
			
			$('pagePeelContentHolder').morph(
				'height:'+(peelOpenHeight)+'px; width:'+peelOpenWidth+'px;',
				{ 
					transition: Effect.Transitions.sinoidal, 
					duration:peelOpenDuration,
					delay:0.02,
					afterFinish: function() { 
						peelSetSliding( 0 ); 
						peelSetOpen( 1 );
						if(peelHasToClose) {
							peelHasToClose = false;
							closePeel(document.body);
						}
					}
				}
			);
			
			$('pagePeelCorner').morph(
				'height:'+(peelOpenHeight+peelShadowOpenHeight)+'px; width:'+peelOpenWidth+'px;',
				{ 
					transition: Effect.Transitions.sinoidal, 
					duration:peelOpenDuration
				}
			);

		} else if(peelGetSliding() == 1){
			peelHasToClose = false;
		}
	}
}

function closePeel(evt) {
	if(evt == document.body) {
		el = document.body;
	} else {
		el = Event.element(evt);
	}
	if (!isChildOf(el,$('pagePeelHolder'))) {
		if ( peelGetSliding() == 0 && peelGetOpen() == 1) {
			
			if(peelContinuousMoving) {
				cancelContinuousMoving();
			}
			
			peelSetSliding( 1 );
			peelHasToClose = false;
			
			$('pagePeelContentHolder').morph(
				'height:'+(peelClosedHeight)+'px; width:'+peelClosedWidth+'px;',
				{
					transition: Effect.Transitions.sinoidal, 
					duration:peelCloseDuration,
					afterFinish: function() { 
						peelSetSliding( 0 );
						peelSetOpen( 0 );
						
						if(peelContinuousMoving) {
							peelContinuousMove();
						}
						
					}
				}
			);
			
			$('pagePeelCorner').morph(
				'height:'+(peelClosedHeight+peelShadowClosedHeight)+'px; width:'+peelClosedWidth+'px;',
				{
					transition: Effect.Transitions.sinoidal, 
					duration:peelCloseDuration,
					delay:0.02
				}
			);
			
		}  else if(peelGetSliding() == 1 && peelGetOpen() == 0) {
			peelHasToClose = true;
		}
	}
}

