/*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~/
 * FilmStript, v1.0
 * (c) 2004 timallen.com
 * created by bivia of bivia.com, January 23 2004
 * $Id: galleryFilmstrip.js,v 1.5 2005/02/01 06:50:57 bcurtis Exp $
 *
 *~~~~*/


var bv_FilmStripInitialized = false;
var bv_FilmStripColumns = 4;
var bv_FilmStripRows = 3;
var bv_FilmStripType = "Pic";
var bv_FilmStrip;



function bv_setBandWidth(To,skipReload) {
	var Bw = (To == "hi") ? 1 : 0;
	var E  = new Date();
	var Ex = new Date(E.getTime() + 1000*60*60*24*30*6);
	document.cookie = "bndchoice="+ Bw +"; path=/; expires="+ Ex.toGMTString() +";";
	bv_setBandWidthToggles();
	if (!skipReload) window.vidFrame.location.reload();
}
function bv_setBandWidthToggles() {
	var HiTo = (document.cookie.indexOf("bndchoice=0") == -1) ? "on" : "off";
	var LoTo = (HiTo == "on") ? "off" : "on";
	if (window.bv_flip) {
		var Hi = document.getElementById("hiBandButton");
		var Lo = document.getElementById("loBandButton");
		if (!Hi || !Lo) return;
		if (!Hi.orig_off || !Hi.off) {
			bv_preload(Hi, "off", "on");
			bv_preload(Lo, "off", "on");
			Hi.orig_off = Hi.off;
			Lo.orig_off = Lo.off;
		}
		Hi.off = (HiTo == "on") ? Hi.on : Hi['orig_off'];
		Lo.off = (LoTo == "on") ? Lo.on : Lo['orig_off']; 
		bv_flip(Hi, HiTo);
		bv_flip(Lo, LoTo);
	}
}
function bv_setVideo(V) {
	bv_setViewer(V.title);
	bv_FilmStrip.cursor = V.parentNode;
	return true;
}
function bv_setNextVideo() {
	bv_setNextPic();
	document.getElementById('vidFrame').src = bv_FilmStrip.cursor.firstChild.href;
}
function bv_setPrevVideo() {
	bv_setPrevPic();
	document.getElementById('vidFrame').src = bv_FilmStrip.cursor.firstChild.href;
}



function bv_setPic(Src, RegDim, BigDim, BigURL) {
	if (!bv_FilmStripInitialized) return false;
// set the gallery rows
	if (
			bv_FilmStrip.currScroll + bv_FilmStripRows <= Src.parentNode.bv_FilmStripScrollPos
		|| bv_FilmStrip.currScroll > Src.parentNode.bv_FilmStripScrollPos
	) bv_slideRowsTo(Src.parentNode.bv_FilmStripScrollPos - Math.floor(bv_FilmStripRows /2));
	bv_FilmStrip.cursor = Src.parentNode;
	if (BigDim) {
		var Pop = document.getElementById('picViewPop');
		Pop.href = BigURL;
		Pop.style.display = 'block';
	} else document.getElementById('picViewPop').style.display = 'none';
	var Pic = document.getElementById('picViewPic');
	var Div = document.getElementById('picViewCloseup');
	var Ht  = parseInt(RegDim.substring(RegDim.indexOf('x') +1));
	var Wd  = parseInt(RegDim.substring(0,RegDim.indexOf('x')));
	Pic.innerHTML = '<img src="'+ Src.href +'" height="'+ Ht +'" width="'+ Wd +'" />';
	Div.style.width = (Wd +2)+"px";
	bv_setViewer(Src.title);
	return false;
}


function bv_setViewer(T) {
	document.getElementById('picViewCaption').innerHTML = T;
	document.getElementById('picRows').style.display = 'none';
	document.getElementById('picView').style.display = 'block';
}
function bv_setGalleryRows() {
	if (!bv_FilmStripInitialized) return false;
	document.getElementById('picRows').style.display = 'block';
	document.getElementById('picView').style.display = 'none';
	var Vid = document.getElementById('vidFrame');
	if (Vid) Vid.src = "/gallery/video_player.php";
}


function bv_setNextPic() {
	var Rent = bv_FilmStrip.cursor.parentNode;
	do {
		bv_FilmStrip.cursor = bv_FilmStrip.cursor.nextSibling;
		if (!bv_FilmStrip.cursor) bv_FilmStrip.cursor = Rent.firstChild;
	} while (bv_FilmStrip.cursor.nodeType != 1)
	bv_FilmStrip.cursor.firstChild.onclick();
}
function bv_setPrevPic() {
	var Rent = bv_FilmStrip.cursor.parentNode;
	do {
		bv_FilmStrip.cursor = bv_FilmStrip.cursor.previousSibling;
		if (!bv_FilmStrip.cursor) bv_FilmStrip.cursor = Rent.lastChild;
	} while (bv_FilmStrip.cursor.nodeType != 1)
	bv_FilmStrip.cursor.firstChild.onclick();
}


function bv_slideRowsUp() {
	bv_slideRowsTo(bv_FilmStrip.currScroll +1);
}
function bv_slideRowsDown() {
	bv_slideRowsTo(bv_FilmStrip.currScroll -1);
}
function bv_slideRowsTo(Row) {
	document.getElementById('picStripControls').firstChild.style.visibility = "visible";
	document.getElementById('picStripControls').lastChild.style.visibility  = "visible";
	if (Row <= 0) {
		Row = 0;
		document.getElementById('picStripControls').firstChild.style.visibility = "hidden";
	} else if (Row >= bv_FilmStrip.maxScroll) {
		Row = bv_FilmStrip.maxScroll;
		document.getElementById('picStripControls').lastChild.style.visibility = "hidden";
	}
	bv_FilmStrip.currScroll = Row;
	bv_slideRows();
}


function bv_slideRows() {
	if (bv_FilmStrip.timer) clearTimeout(bv_FilmStrip.timer);
	var Dest   = -1 * bv_FilmStrip.currScroll * 128;
	var Top    = parseInt(bv_FilmStrip.style.top);
	var Dist   = Math.abs(Dest - Top);
	var Diff   = Dest - Top;
	if (Dist > 1) {
		Top += Math.ceil(0.25* Diff);
		var AtDest = false;
	} else {
		Top = Dest;
		var AtDest = true;
	}
	bv_FilmStrip.style.top = Top +"px";
	if (!AtDest) bv_FilmStrip.timer = setTimeout("bv_slideRows()", 15);
}


function bv_makeFilmStrip() {
	bv_FilmStripType = (/video|qtent|COTO_contest/.test(self.location.href)) ? "Video" : "Pic";
	bv_FilmStrip = document.getElementById('picStrip');
	bv_FilmStrip.timer  = null;
	bv_FilmStrip.pix    = bv_FilmStrip.getElementsByTagName('li');
	bv_FilmStrip.cursor = bv_FilmStrip.pix[0];
	bv_FilmStrip.next   = window['bv_setNext'+ bv_FilmStripType];
	bv_FilmStrip.prev   = window['bv_setPrev'+ bv_FilmStripType];
	bv_FilmStrip.up     = bv_slideRowsUp;
	bv_FilmStrip.down   = bv_slideRowsDown;
	bv_FilmStrip.show   = bv_setGalleryRows;

	document.getElementById('picStripControls').firstChild.onclick = bv_FilmStrip.down;
	document.getElementById('picStripControls').lastChild.onclick  = bv_FilmStrip.up;
	document.getElementById('picViewControls').firstChild.onclick  = bv_FilmStrip.prev;
	document.getElementById('picViewControls').lastChild.onclick   = bv_FilmStrip.next;
	document.getElementById('picViewBackClicker').onclick          = bv_FilmStrip.show;
	
	if (bv_FilmStripType == "Video" && null !== (Cntrl = document.getElementById('picViewBandwidthControls'))) {
		Cntrl.firstChild.onclick = function () { bv_setBandWidth('hi'); };
		Cntrl.lastChild.onclick  = function () { bv_setBandWidth('lo'); };
	}

	bv_FilmStrip.maxScroll  = Math.max(0, Math.ceil(bv_FilmStrip.pix.length /bv_FilmStripColumns) - bv_FilmStripRows);
	bv_FilmStrip.currScroll = 0;
	bv_FilmStrip.style.top  = "0px";
	for (var xx=0; xx<bv_FilmStrip.pix.length; xx++)
		bv_FilmStrip.pix[xx].bv_FilmStripScrollPos = Math.floor(xx / bv_FilmStripColumns);
	bv_slideRowsTo(bv_FilmStrip.currScroll);

	bv_FilmStripInitialized = true;
	if (window.bv_FilmStripStartsAt)
		bv_FilmStrip.pix[window.bv_FilmStripStartsAt].firstChild.onclick();
}
bv_addListener(window, 'docload', bv_makeFilmStrip);

// function d(msg) {
// 	if (/http:\/\/preview\./.test(self.location.href)) alert(msg);
// }

