var thisPic, newPtr, fileID;
var maxImages = 5759;
var newImage = "";
var actualWidth = 777;
var firstImageWidth = 0;
var xdisplayWidth = 704;
var width1 = 0;
var width2 = 0;
var width3 = 0;
window.onload = startHere;
function newLocation() {
document.location.href=newImage;
}

function pointtotime(picPointer) { 
	var myPtr = Math.floor(picPointer / 5760 * 720 - 1);
	ident=document.getElementById("PointerPos").style;
	ident.left=myPtr;
	if (callForHighlight==1) {
		hiliteTimeBar();
		callForHighlight=0;
	}
}

function setBrightness(inDate) {
//	document.getElementById("minfo").innerHTML = 'zz'+inDate+'c:'+curYYMMDD+'sM:'+showMe;
	var inYear = inDate.substr(0,2) * 1;
	var inMonth = inDate.substr(2,2) * 1;
	var inDay = inDate.substr(4,2) * 1;
	var firstYear = imagepointers.substr(0,2) * 1;
	var tahbler = imagepointers.substr(2);
	while (tahbler.length%372) {tahbler=tahbler+'0';} // Make sure table is full years
	var lastYear = firstYear + (tahbler.length / 372) - 1;
	for (var y=firstYear; y<=lastYear ;y++) {
		var yP = y - firstYear;
		var yTahbler = tahbler.substr(yP*372,372);
		if (yTahbler.indexOf('x')>=0) {
			if (y==inYear) {
				change('y'+y,'highlite');
				for (var m=1; m<=12; m++) {
					var mP=m-1;
					var mTahbler = yTahbler.substr(mP*31,31);
					if (mTahbler.indexOf('x')>=0) {
						if (m==inMonth) {
							change('m'+m.toString(),'highlite');
							for (d=1; d<=31; d++) {
								var dP=d-1;
								if (mTahbler.substr(dP,1)=='x') {
									if (d==inDay) {
										change('d'+d.toString(),'highlite');
									}
									else {
										change('d'+d.toString(),'medlite');
									}
								}
								else {
									change('d'+d.toString(),'lowlite');
								}
							}
						}
						else {
							change('m'+m.toString(),'medlite');
						}
					}
					else {
						change('m'+m.toString(),'lowlite');
					}
				}
			}
			else {
				change('y'+y,'medlite');
			}
		}
		else {
			change('y'+y,'lowlite');
		}
	}
}


function initLastDate() {
// Determine last day with pics
	var lastIndex = imagepointers.substr(2).lastIndexOf('x');
	var firstYear = imagepointers.substr(0,2) * 1;
	var liYY = (firstYear + Math.floor(lastIndex/372)).toString(); if (liYY.length==1) {liYY='0'+liYY};
	var liMM = (Math.floor(lastIndex/31)%12 + 1).toString(); if (liMM.length==1) {liMM='0'+liMM};
	var liDD = (lastIndex%31 + 1).toString(); if (liDD.length==1) {liDD='0'+liDD};
	var lastImageYYMMDD = liYY+liMM+liDD;
	curYYMMDD = lastImageYYMMDD;
	setBrightness(lastImageYYMMDD);
}

function initFirstDate() {
// Determine FIRST day with pics
	var lastIndex = imagepointers.substr(2).indexOf('x');
	var firstYear = imagepointers.substr(0,2) * 1;
	var liYY = (firstYear + Math.floor(lastIndex/372)).toString(); if (liYY.length==1) {liYY='0'+liYY};
	var liMM = (Math.floor(lastIndex/31)%12 + 1).toString(); if (liMM.length==1) {liMM='0'+liMM};
	var liDD = (lastIndex%31 + 1).toString(); if (liDD.length==1) {liDD='0'+liDD};
	var lastImageYYMMDD = liYY+liMM+liDD;
	curYYMMDD = lastImageYYMMDD;
	setBrightness(lastImageYYMMDD);
}


function FIRSTTRYinitDates() {
//set start year from first chars
	var tableFirstYear = imagepointers.substr(0,1);
//set last year (may be same as first)
	var tableLastYear = tableFirstYear + Math.floor((imagepointers.length - 1) / 372) - 1;
// Highest year with days
	var highestYear = 0;

for (var i=tableFirstYear; i <= tableLastYear; i++) {
	change('y0'+(i).toString(),'lowlite');
	// Get this year
	var x372 = imagepointers.substr((i - tableFirstYear)*372+1,372);
	if (x372.indexOf('x')>=0) {
		change('y0'+(i).toString(),'medlite');
		highestYear = i;
	}
}

}



function blankMessage() { 
	var newMessage = "xxxxxx";
	document.getElementById("theMessage").innerHTML = "sdfgsdfgsdfg";
}



function start() {
alert( "Starting something");
setTimeout( "end();", 5000);
}

function end() {
//alert( "5 seconds later?");
} 


function startHere() {
//	thisPic = maxImages;
//	newPtr = maxImages;
//	thisPic = Math.floor(maxImages/2);
//                                                                          loadCamJs;
//alert( "Starting something");
//setTimeout( "end();", 2000);
	document.getElementById("pageTitleInfo").innerHTML = pageTitleInfo;

	thisPic = Math.floor(maxImages);
	newPtr = thisPic;
	fileID = "fileid";
	
	initLastDate();
	loadDate(curYYMMDD);

	pointtotime(thisPic);
		callForHighlight==1;
}

function change(id, newClass) { 
	identity=document.getElementById(id);
	identity.className=newClass; 
}

function hiliteTimeBar() {
	var vLow = 719;
	var vHigh = 0;
	for (var i=0; i <= 719; i++) {
			change('i'+i.toString(),'v');
		if (images.substr(i*8,8) != '--------') {
			if (i < vLow) {
				vLow = i;
			}
			if (i > vHigh) {
				vHigh = i;
			}
		}
	}
	for (var i=vLow; i <= vHigh; i++) {
		change('i'+i.toString(),'v1');
	}
}

function deriveName(aPtr) { // Makes full "time name" from array pointer
	var atoo = 'abcdefghijklmno';
	var itemEntry = images.substr(aPtr,1); // atoo
	var itemValue = atoo.indexOf(itemEntry); // 0 to 14
	var itemQuad = aPtr % 4; // 0 to 3 ()
	var itemSecond = itemValue + (itemQuad * 15);
	
	newName = "newname";
	newTime = "newtime";
	var myHour = Math.floor(aPtr / 240);
	var myHourZero = "";
	if (myHour < 10) {myHourZero = "0"}
	var myMinute = Math.floor((aPtr - (myHour * 240)) / 4);
	var myMinuteZero = "";
	var mySecondZero = "";
	if (itemSecond < 10) {mySecondZero = "0"}
	if (myMinute < 10) {myMinuteZero = "0"}
	newTime = myHourZero+myHour+":"+myMinuteZero+myMinute+":"+mySecondZero+itemSecond;
//	document.getElementById("pictime").innerHTML = newTime;
	newName = myHourZero+myHour+myMinuteZero+myMinute+mySecondZero+itemSecond;
	return newName;
}









function prevImage(speed) {
	newPtr = (thisPic - speed);
	while (true) {
		if (newPtr < 0) {
			
		newPtr = 0;
		while (true) {
			if (newPtr >= maxImages) {return;};
			if (images.substr(newPtr,1) != '-') {
				thisPic = newPtr;
				return;
			}
			newPtr++;
		}
			};
		if (images.substr(newPtr,1) != '-') {
			thisPic = newPtr;
			return;
		}
		newPtr--;
	}
}

function nextImage(speed) {
	newPtr = thisPic + (speed * 1);
	while (true) {
		if (newPtr >= maxImages) {
			newPtr = maxImages;
			while (true) {
				if (newPtr < 0) {return;};
				if (images.substr(newPtr,1) != '-') {
					thisPic = newPtr;
					return;
				}
				newPtr--;
			}

		};
		if (images.substr(newPtr,1) != '-') {
			thisPic = newPtr;
			return;
		}
		newPtr++;
	}
}

function getPrevious(speed) {
	myName = "myname";
	prevImage(speed);
	myName = deriveName(thisPic);
//    document.myPicture.src =iCamera+camdate.substr(1,6)+"/"+myName.substr(0,2)+"/"+camdate+"-"+myName+".jpg";
//    document.myRef.href =iCamera+camdate.substr(1,6)+"/"+myName.substr(0,2)+"/"+iPrefix+"_20"+camdate.substr(1,6)+myName+".jpg";
    newImage =iCamera+camdate.substr(1,6)+"/"+myName.substr(0,2)+"/"+iPrefix+"20"+camdate.substr(1,6)+myName+".jpg";
//    document.myRef.href =newImage;
    document.myPicture.src =iCamera+camdate.substr(1,6)+"/"+myName.substr(0,2)+"/"+iPrefix+"20"+camdate.substr(1,6)+myName+".jpg";
//    document.myPicture.width="";
	pointtotime(thisPic);
blankMessage;
}

function getNext(speed) {
	myName = "myname";
	nextImage(speed);
	myName = deriveName(thisPic);
//    document.myRef.href =iCamera+camdate.substr(1,6)+"/"+myName.substr(0,2)+"/"+iPrefix+"_20"+camdate.substr(1,6)+myName+".jpg";
newImage =iCamera+camdate.substr(1,6)+"/"+myName.substr(0,2)+"/"+iPrefix+"20"+camdate.substr(1,6)+myName+".jpg";
//    document.myRef.href =newImage;
    document.myPicture.src =iCamera+camdate.substr(1,6)+"/"+myName.substr(0,2)+"/"+iPrefix+"20"+camdate.substr(1,6)+myName+".jpg";
//    document.myPicture.width="";
	pointtotime(thisPic);
blankMessage;
}
// Function z(e) is tied to the links on the time bar: e=0 to 719
function z(e) {
	thisPic = (e * 8);
	getNext(1);
	pointtotime(thisPic);
}


// <div ID="picdate">date</div>
// document.getElementById("picdatetesting").innerHTML = "Jan 1, 2006!"


/*
 * cssjs
 * written by Christian Heilmann (http://icant.co.uk)
 * eases the dynamic application of CSS classes via DOM
 * parameters: action a, object o and class names c1 and c2 (c2 optional)
 * actions: swap exchanges c1 and c2 in object o
 *			add adds class c1 to object o
 *			remove removes class c1 from object o
 *			check tests if class c1 is applied to object o
 * example:	cssjs('swap',document.getElementById('foo'),'bar','baz');
 */

function cssjs(a,o,c1,c2)
{
	switch (a){
		case 'swap':
			o.className=!cssjs('check',o,c1)?o.className.replace(c2,c1):o.className.replace(c1,c2);
		break;
		case 'add':
			if(!cssjs('check',o,c1)){o.className+=o.className?' '+c1:c1;}
		break;
		case 'remove':
			var rep=o.className.match(' '+c1)?' '+c1:c1;
			o.className=o.className.replace(rep,'');
		break;
		case 'check':
			return new RegExp('\\b'+c1+'\\b').test(o.className)
		break;
	}
}





