
/******************************/
/*****  CONFIG SETTINGS  *****/
/******************************/

	var peelContinuousMoving		= true;

	/* DIMENSIONS */
	var peelOpenHeight 				= 285;
	var peelOpenWidth 				= 286;
	var peelClosedHeight 			= 90;
	var peelClosedWidth 			= 90;
	var peelShadowOpenHeight		= 14;
	var peelShadowClosedHeight		= 5;

	/* TIMING */
	var peelCloseDuration 			= 0.27;
	var peelOpenDuration 			= 0.27;


/*******************************************/
/*****  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() {
   
   if($('pagePeelCorner') && $('pagePeelHolder')) {  
      if($('pagePeelCornerIE')) {
         $('pagePeelCorner').style.display = 'none';
      }
      
      $('pagePeelHolder').style.display = '';
      
      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);
					}
				}
			}
		);
	
      if($('pagePeelCornerIE')) {
         continuousMove2 = new Effect.Morph($('pagePeelCornerIE'),
            {
               style: 'height:'+(newHeightPeelCorner)+'px; width:'+newWidth+'px;',
               transition: Effect.Transitions.sinoidal, 
               duration: peelDuration,
               delay: peelDelay + peelCornerDelay
            }
         );
      } else {
   		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);
						}
					}
				}
			);
			
         if($('pagePeelCornerIE')) {
   			$('pagePeelCornerIE').morph(
   				'height:'+(peelOpenHeight+peelShadowOpenHeight)+'px; width:'+peelOpenWidth+'px;',
   				{ 
   					transition: Effect.Transitions.sinoidal, 
   					duration:peelOpenDuration
   				}
   			);
         } else {
            $('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();
						}
						
					}
				}
			);
			
         if($('pagePeelCornerIE')) {
   			$('pagePeelCornerIE').morph(
   				'height:'+(peelClosedHeight+peelShadowClosedHeight)+'px; width:'+peelClosedWidth+'px;',
   				{
   					transition: Effect.Transitions.sinoidal, 
   					duration:peelCloseDuration,
   					delay:0.02
   				}
   			);
         } else {
            $('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;
		}
	}
}

Event.observe(window, 'load', initPagePeel);

