var curleft=0;
var curtop=0;
var currNum=0;
var currSpeed=0;
var currDistance=0;
var interval_started=false;
var init_activated=false;
var timeline_scrolling=false;
/* moved to scripts.js
var mouseX;
var mouseY;
var mouse_interval=0;
*/

function scrollPane()
	{
	if (currNum==1)
		{
		$('#pane-target').scrollTo( {top:'0px', left:'-='+currDistance}, currSpeed,{easing:'linear', onAfter:function(){scrollPane()} });
		}
	else
		{
		$('#pane-target').scrollTo( {top:'0px', left:'+='+currDistance}, currSpeed,{easing:'linear', onAfter:function(){scrollPane()} });
		}
	timeline_scrolling=true;
	startInterval();
	}

function getXCoord(obj,obj2)
	{
    curleft=0;
    if (obj.offsetParent)
		{
        while(1) 
        	{
          	curleft+=obj.offsetLeft;
          	if(!obj.offsetParent)
				{
            	break;
				}
          	obj=obj.offsetParent;
			}
        }
    else if (obj.x)
		{
        curleft+=obj.x;
		}
	
	curtop=0;
    if (obj2.offsetParent)
		{
        while(1)
        	{
          	curtop+=obj2.offsetTop;
          	if(!obj2.offsetParent)
		  		{
            	break;
				}
          	obj2=obj2.offsetParent;
			}
        }
    else if (obj2.y)
		{
        curtop+=obj2.y;
		}
	
	if ((mouseX-curleft)>0 && (mouseX-curleft)<100)
		{
		currSpeed=5+mouseX-curleft;
		if (currNum!=1)
			{
			if (scrolling_allowed==true)
				{
				currNum=1; currDistance=40; scrollPane();
				}
			}
		}
	else if ((mouseX-curleft)>(browserWidth+1-100-18) && (mouseX-curleft)<(browserWidth+1-18))
		{
		currSpeed=5+(browserWidth+1-18)-(mouseX-curleft);
		if (currNum!=2)
			{
			if (scrolling_allowed==true)
				{
				currNum=2; currDistance=40; scrollPane();
				}
			}
		}
	else
		{
		currNum=0;
		$('#pane-target').stop();
		timeline_scrolling=false;
		}
	}

function stopScroll()
	{
	getMousePos;
	if ((((mouseX-curleft)>2 && (mouseX-curleft)<98) || ((mouseX-curleft)>(browserWidth+1-100-18) && (mouseX-curleft)<(browserWidth-1-18))) && ((mouseY-curtop)>8 && (mouseY-curtop)<200))
		{
		//still in correct zone.
		timeline_scrolling=true;
		}
	else
		{
		if (init_activated==false)
			{
			currNum=0; $('#pane-target').stop();
			}
		timeline_scrolling=false;
		}
	}
	
function startInterval()
	{
	if (interval_started==false)
		{
		mouse_interval=setInterval("stopScroll()",50);
		interval_started=true;
		}
	}

if (window.Event && document.captureEvents)
	{
	document.captureEvents(Event.MOUSEMOVE);
	}
document.onmousemove=getMousePos;

// TOUCH-EVENTS SINGLE-FINGER SWIPE-SENSING JAVASCRIPT
// Courtesy of PADILICIOUS.COM and MACOSXAUTOMATION.COM
// this script can be used with one or more page elements to perform actions based on them being swiped with a single finger
var triggerElementID=null; // this variable is used to identity the triggering element
var fingerCount=0;
var startX=0;
var startY=0;
var curX=0;
var curY=0;
var deltaX=0;
var deltaY=0;
var horzDiff=0;
var vertDiff=0;
var minLength=72; // the shortest distance the user may swipe
var swipeLength=0;
var swipeAngle=null;
var swipeDirection=null;
	
// The 4 Touch Event Handlers
// NOTE: the touchStart handler should also receive the ID of the triggering element
// make sure its ID is passed in the event call placed in the element declaration, like:
// <div id="picture-frame" ontouchstart="touchStart(event,'picture-frame');"  ontouchend="touchEnd(event);" ontouchmove="touchMove(event);" ontouchcancel="touchCancel(event);">

function touchStart(event,passedName)
	{
	// disable the standard ability to select the touched object
	event.preventDefault();
	// get the total number of fingers touching the screen
	fingerCount=event.touches.length;
	// since we're looking for a swipe (single finger) and not a gesture (multiple fingers),
	// check that only one finger was used
	if (fingerCount==1)
		{
		// get the coordinates of the touch
		startX=event.touches[0].pageX;
		startY=event.touches[0].pageY;
		// store the triggering element ID
		triggerElementID=passedName;
		}
	else
		{
		// more than one finger touched so cancel
		touchCancel(event);
		}
	}

function touchMove(event)
	{
	event.preventDefault();
	if (event.touches.length==1)
		{
		curX=event.touches[0].pageX;
		curY=event.touches[0].pageY;
		}
	else
		{
		touchCancel(event);
		}
	}
	
function touchEnd(event)
	{
	event.preventDefault();
	// check to see if more than one finger was used and that there is an ending coordinate
	if (fingerCount==1 && curX!=0)
		{
		// use the Distance Formula to determine the length of the swipe
		swipeLength = Math.round(Math.sqrt(Math.pow(curX-startX,2) + Math.pow(curY-startY,2)));
		// if the user swiped more than the minimum length, perform the appropriate action
		if (swipeLength>=minLength)
			{
			calculateAngle();
			determineSwipeDirection();
			processingRoutine();
			touchCancel(event); // reset the variables
			}
		else
			{
			touchCancel(event);
			}	
		}
	else
		{
		touchCancel(event);
		}
	}

function touchCancel(event)
	{
	// reset the variables back to default values
	fingerCount=0;
	startX=0;
	startY=0;
	curX=0;
	curY=0;
	deltaX=0;
	deltaY=0;
	horzDiff=0;
	vertDiff=0;
	swipeLength=0;
	swipeAngle=null;
	swipeDirection=null;
	triggerElementID=null;
	}
	
function calculateAngle()
	{
	var X=startX-curX;
	var Y=curY-startY;
	var Z=Math.round(Math.sqrt(Math.pow(X,2)+Math.pow(Y,2))); //the distance - rounded - in pixels
	var r=Math.atan2(Y,X); //angle in radians (Cartesian system)
	swipeAngle=Math.round(r*180/Math.PI); //angle in degrees
	if (swipeAngle<0)
		{
		swipeAngle=360-Math.abs(swipeAngle);
		}
	}
	
function determineSwipeDirection()
	{
	if ((swipeAngle<=45) && (swipeAngle>=0))
		{
		swipeDirection='left';
		}
	else if ((swipeAngle<=360) && (swipeAngle>=315))
		{
		swipeDirection='left';
		}
	else if ((swipeAngle>=135) && (swipeAngle<=225))
		{
		swipeDirection='right';
		}
	else if ((swipeAngle>45) && (swipeAngle<135))
		{
		swipeDirection='down';
		}
	else
		{
		swipeDirection='up';
		}
	}
	
function processingRoutine()
	{
	var swipedElement=document.getElementById(triggerElementID);
	if (scrolling_allowed==true)
		{
		if (swipeDirection=='left')
			{
			currDistance=452;
			currSpeed=900;
			$('#pane-target').scrollTo({top:'0px', left:'+='+currDistance}, currSpeed,{easing:'easeOutQuart'});
			}
		else if (swipeDirection=='right')
			{
			currDistance=452;
			currSpeed=900;
			$('#pane-target').scrollTo({top:'0px', left:'-='+currDistance}, currSpeed,{easing:'easeOutQuart'});
			}
		else if (swipeDirection=='up')
			{
			}
		else if (swipeDirection=='down')
			{
			}
		}
	}
	
function initScroll()
	{
	init_activated=true;
	currDistance=6250;
	currSpeed=1;
	$('#pane-target').scrollTo({top:'0px', left:'+='+currDistance}, currSpeed,{easing:'easeOutQuart'});
	}
