var totalNumberOfFalls;

var changedSearch = false;

var speed=10;

var chosenLocation="";
var nameFilter="";

function changeNameFilter ( )
{
	var obj=document.getElementById("nameFilter");
	nameFilter=obj.value;
       changedSearch=true;
	loadFalls();
     
}

function changeLocation ( )
{
	var obj=document.getElementById("location");
	chosenLocation=obj.value;
       changedSearch=true;
	loadFalls();
	return true;
}

function loadFalls ( )
{
	var xml=null;
        
        if ( window.XMLHttpRequest )
        {
		xml = new XMLHttpRequest(); 
	}
	else
	{
		try 
		{
			xml = new ActiveXObject("Msxml2.XMLHTTP");
		} 
		catch (e)  
		{
			try 
			{
				xml = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch (E) 
			{
				document.location.href='scrollinglakesuperiormap2.shtml';
			}
		}            
	}
	xml.open("GET","flipbookdata",false);
	xml.send(null);
	lines=xml.responseText.split('\n');

        falls = null;
 	falls = new Array;
	k=0;
        myregexp = new RegExp(nameFilter,["i"]);
	fallnum=0;
	for (i=0; i<lines.length; ++i)
	{
		data=lines[i].split(';');
                
  //              if ( data[1] == "umbata.shtml" )
  //                  alert( data.length);
		if ( data.length >= 3 )
		{
			if ( typeof data[3] != 'string' )
				alert(data[3]+" "+i);
			if ( (chosenLocation == "" || data[3].indexOf(chosenLocation) != -1 )
                      		&& ( nameFilter == "" || data[2].match(myregexp)) )
				{
					falls[k]=new fall(data[0],data[1],data[2]);
               var urlName="/"+data[1];
					if ( !changedSearch && document.referrer.indexOf(urlName) != -1 )
						fallnum=k;
					++k;
				}
		}
	}
	totalNumberOfFalls=k;
//	alert(totalNumberOfFalls);

	for (i=0; i<11;  ++i)
	{
		divs[i]=i;
		j=fallnum+i-5;
		var obj=document.getElementById("l"+i);
		obj.style.left=frames[i].left+"px";
		obj.style.height=frames[i].height;
		obj.style.top=frames[i].top+"px";
		obj.style.zIndex=frames[i].z;

		if ( j < 0 || j >= totalNumberOfFalls )
		{
			obj.style.visibility="hidden";
		}
		else
		{
			document["i"+i].src="images/thumbs/"+falls[j].image;
			obj.style.visibility="visible";
		}
		document["i"+i].height=frames[i].height;
	}
	obj=document.getElementById("l5");
	
	obj=document.getElementById("fallName");
	if ( falls.length > fallnum )
        	obj.innerHTML="<b>"+falls[fallnum].name+"</b>";
	else
        	obj.innerHTML="No falls match the search criteria";
	desiredCard=5;
	return false;
}

function init()
{
	loadFalls();
}

function frame( height, left, top, z )
{
	this.height=height;
	this.left=left;
	this.top=top;
	this.z=z;
}

function card( framenumber, image )
{
	this.framenumber=framenumber;
	this.image=image;
}

function fall( image, page, name )
{
	this.image=image;
	this.page=page;
	this.name=name;
}

var fallnum=0;

var middleFrameLeft=260;

var count;
var count2=0;

var falls = null;

var frames = new Array;
var divs = new Array;

frames[0]=new frame(110,0,80,0);
frames[1]=new frame(135,0,67,1);
frames[2]=new frame(160,30,55,2);
frames[3]=new frame(185,60,42,3);
frames[4]=new frame(210,90,30,4);
frames[5]=new frame(250,middleFrameLeft,10,5);
frames[6]=new frame(210,460,30,4);
frames[7]=new frame(185,509,42,3);
frames[8]=new frame(160,558,55,2);
frames[9]=new frame(135,607,67,1);
frames[10]=new frame(110,626,80,0);

for (i=0; i<11; ++i)
{
	divs[i]=i;
}

// var falls[10]; // = { "vwagnersfalls1.jpg", "vwarnerfalls1.jpg" } ;

var desiredCard=5;
var currentCard;
var isScrolling=0;
var scrollDirection;
var mytimer;

function startScrolling(direction) 
{
	if ( !isScrolling )
	{
		mytimer = setInterval('scrollFrames()', 5);	
		isScrolling=1;
	
		if ( direction == 1 )
		{
/*
			if ( count == 100 )
				shiftLeft();
*/
			count=0;
		}
		else
		{
/*
			if ( count == 0 )
				shiftRight();
			count=100;
*/
			count=0;
		}
			
	}
	scrollDirection=direction;
}

function setDesiredCard(cardNumber)
{
	var obj=document.getElementById("l"+cardNumber);
	var left=parseInt(obj.style.left);
        speed=10;
	if ( left == middleFrameLeft )
	{	
//		alert("On Desired card = "+cardNumber);
		document.location.href=falls[fallnum].page;
	}
	else if ( left > middleFrameLeft )
	{
		desiredCard=cardNumber;
		startScrolling(1);
	}
	else
	{
		desiredCard=cardNumber;
		startScrolling(0);
	}
	return 1;
}

function scrollRight()
{
//	alert(fallnum+" "+fallOffset);
	speed=50;
	if ( fallnum != totalNumberOfFalls-1 )
	{
//		if ( count == 100 )
//			shiftLeft();   
		startScrolling(1);
	}
}


function sl()
{
//	alert(fallnum+" "+fallOffset);
	speed=50;
	if ( fallnum != 0 )
	{
//		if ( count == 0 )
//			shiftRight();     
//		count=100;
		startScrolling(0);
	}
}

function shiftLeft()
{
	for (j=0; j<11; ++j)
	{
		--divs[j];
		var obj=document.getElementById("l"+j);
		var framenum=divs[j];
		if ( obj && framenum >= 0 )
		{
			obj.style.zIndex=frames[framenum].z;
		}
		else if ( obj )
		{
			divs[j]=10;
			obj.style.left=frames[10].left+"px";
			obj.style.top=frames[10].top+"px";
			obj.style.height=frames[10].height;
			obj.style.zIndex=frames[10].zIndex;
			newfall=fallnum+6;
			if ( newfall < totalNumberOfFalls )
			{
                            document["i"+j].src="transparent.gif";
				document["i"+j].src="images/thumbs/"+falls[newfall].image;
				obj.style.visibility="visible";
			}
			else
			{
				obj.style.visibility="hidden";
			}
		}
		else
		{
			alert(j+" "+framenum);
		}
	}
        ++fallnum;
}

function shiftRight()
{
	for (j=0; j<11; ++j)
	{
		++divs[j];
		var obj=document.getElementById("l"+j);
		var framenum=divs[j];
		if ( obj && framenum < 11 )
		{
			obj.style.zIndex=frames[framenum].z;
		}
		else if ( obj )
		{
			divs[j]=0;
			obj.style.left=frames[0].left+"px";
			obj.style.top=frames[0].top+"px";
			obj.style.height=frames[0].height;
			obj.style.zIndex=frames[0].zIndex;
//			document["i"+j].src="images/thumbs/"+falls[fallnum].image;
			newfall=fallnum-6;
			if ( newfall >=0 )
			{
                            document["i"+j].src="transparent.gif";
				document["i"+j].src="images/thumbs/"+falls[newfall].image;
				obj.style.visibility="visible";
			}
			else
			{
				obj.style.visibility="hidden";
			}
  
		}
		else
		{
			alert(j+" "+framenum);
		}
	}
	--fallnum;
        var obj=document.getElementById("fallName");
	obj.style.color="#333333";
}

function scrollFrames()
{
	if ( scrollDirection )
		count+=speed;
	else
		count-=speed;

	if ( scrollDirection==1 && count >= 100 )
	{
		shiftLeft();
	        count=0;
	}
	else if ( scrollDirection==0 )
	{
		if ( count == 0 )
		{

			if ( left == middleFrameLeft || fallnum == 0 )
			{
				clearInterval(mytimer);
				isScrolling=0;
			}
		}
		else if ( count < 0 )
		{
			shiftRight();
			count+=100;
			var obj=document.getElementById("l"+desiredCard);
			var left=parseInt(obj.style.left);
			var obj=document.getElementById("fallName");
	        	obj.innerHTML="<b>"+falls[fallnum+1].name+"</b>";
		}
        }

	for (i=0; i<11; ++i)
	{
		var framenum=divs[i];
		if (framenum > 0)
		{
			var obj=document.getElementById("l"+i);
			obj.style.left=(frames[framenum].left-(frames[framenum].left-frames[framenum-1].left)*count/100)+"px";
			obj.style.top=(frames[framenum].top-(frames[framenum].top-frames[framenum-1].top)*count/100)+"px";
			document["i"+i].height=frames[framenum].height-(frames[framenum].height-frames[framenum-1].height)*count/100;
		}
	}

	if ( count == 0 )
	{
		var obj=document.getElementById("l"+desiredCard);
		var left=parseInt(obj.style.left);

		if ( left == middleFrameLeft || 
			( scrollDirection == 1 && fallnum >= totalNumberOfFalls-1 )
			|| ( scrollDirection == 0 && fallnum <= 0 ))
		{
			clearInterval(mytimer);
			isScrolling=0;
			if ( left != middleFrameLeft )
			{
				for (i=0; i<11; ++i)
				{
					var obj=document.getElementById("l"+i);
					var left=parseInt(obj.style.left);
					if ( left == middleFrameLeft )
						desiredCard=i;	
				}
			}
		}
		var obj=document.getElementById("fallName");
		obj.innerHTML="<b>"+falls[fallnum].name+"</b>";
	}
}

count=0;

onload=init;

