
// A collection of functions that uses backroom_keywords.js to generate next/prev links and
// thumbnail or text links that launch the image database searches. This file is used
// by the backroom_header_html.asp template included in every backroom photos.asp and video.asp page.

// THIS ENTIRE SECTION COULD BE REPLACED IF KEYWORDS.JS WERE AVAILABLE AS AN XML FILE.
/////////////////////////////////////////////////////////////////////////////


// THE FOLLOWING GLOBAL VALUES ARE RE-DECLARED BY ASP IN BACKROOM_HEADER.ASP
var view = ''
var bps = '';
var xmlTitle = '';
var xmlDirectory = '';
var xmlDatabaseId = '';
var keywordIdx = '';

function submitForm(frmName){ document.forms[frmName].submit(); return false }

function loadGallery(frmName, xdet, xsubdir){
	with(document.forms[frmName]){
		subdir.value = xsubdir;
		det.value = xdet;
		return submitForm(frmName);
	}
}
function loadModel(frmName, xdet, xmodelId){
	with(document.forms[frmName]){
		modelId.value = xmodelId;
		det.value = xdet;
		return submitForm(frmName);
	}
}
function loadVideo(asx){
	with(document)(document.getElementById?getElementById('playerFrame'):all['playerFrame']).src=asx;
	return false;
}


function modelThumb(name,img,w,h,noGallery,idx,htm){
	idx = getKwdArrayIndex(name,MODELS,1);
	htm = '<span class="thumb">'
	if(noGallery==-1 || idx < 0) htm += '<a href="#" onClick="return false"\n'
		+ 'onMouseOut="return getDetail()" \n'
		+ 'onMouseOver="return getDetail(this)" title="'+name+'">\n';
	else {
		htm += '<a href="javascript:loadModel(\'brsearch\','+ '\''
		+ MODELS[idx][1].replace(/\'/g,'\\\'') +'\','+MODELS[idx][0]+')"\n'
		+ 'onMouseOver="return getDetail(this)" onMouseOut="return getDetail()"\n'
		+ 'title="'+MODELS[idx][1].replace(/"/g,'&quot;')+'">\n';
	}
	if(img) htm += '<img src="'+img+'"'+ (w?' width="'+w:'')+ '"' + (h?' height="'+h:'')+ '" border="0">';
	else htm += '<img src="'+name.replace(/ /g,'')+'.jpg" width="138" height="205" border="0">';
	if(noGallery==-1) htm += '</a><br>'+name+'</span>\n';
	else htm += '<br><u>'+name+'</u></a></span>\n';
	document.write(htm);
}

function modelThumbList(list, i, htm){
	list = list.split(',');
	if(list[0]){
		i = list.length-1;
		do { list[i]=list[i].replace(/ *(.+) */g,'$1'); } while(i--); list = list.sort().reverse();
		i = list.length-1;
		do { list[i]=list[i].replace(/ *(.+) */g,'$1'); if(list[i]!='') modelThumb(list[i])} while(i--);
	}
}


// NEEDS EDITING TO MEET NEW STANDARD
// THIS FUNCTION IS TEMPORARY, UNTIL ALL PAGES USE NEW TITLE INDEX AND NO LONGER NEED THIS FORWARDED QUERY STRING
function getQueryString(idx,i){
	return '?view='+view+'&page='+Math.ceil(idx/thumbsPerIndexPage)
	+'&idx='+i+'&titleId='+TITLES[i][0]+'&title='+TITLES[i][1];
}

/////////////////////////////////////////////////////////////////////////////


// THE FUNCTIONS BELOW ARE USED FOR VIDEO AND DIGITAL DOWNLOAD LINKS



// SETS MOUSEOVER LINK TITLE WITH DOWNLOAD TIME AND OTHER FILE DETAILS IF DOWNLOAD LINK EXISTS.
function getDetail(lnkObj,rt,fskb){
	var defaultModelSpeed = 'dsl' // All backroom clips download for DSL regardless of what is available for streaming.
	if(lnkObj && lnkObj!='undefined'){
		cr = '\n';
		if(lnkObj.origTitle==undefined)lnkObj.origTitle=lnkObj.title;
		var ttl = lnkObj.origTitle;
		var lnk = lnkObj.href.toLowerCase();
		if(ttl=='')ttl=stripHtml(lnkObj.innerHTML);
		// var dtl = TITLES[keywordIdx][1] + ': '+ttl.replace(/<br>/g,' ') + cr;
		var dtl = ttl.replace(/<br>/g,' ') + cr;
		if(rt && rt!=undefined) dtl += 'Run Time: ' + rt + cr;
		if(lnk.indexOf('#')>-1){
			dtl += 'No Image Gallery Available';
			msg = ttl+' - No Image Gallery Available';
		}
		else if(lnk.indexOf('.wmv')>0 || lnk.indexOf('.zip')>0){
			if(fskb && fskb!=undefined) dtl += 'File Size: ' + getFileSize(fskb) + cr
			dtl +='Download: ' + getDownloadTime(fskb,defaultModelSpeed) + ' Dsl' + cr;
			dtl += 'Click to play or right click to save.';
			var msg = 'Click to play or right click to save.';
		}
		else {
			if(!rt) dtl = msg = dtl + 'Click to view photo gallery';
			else dtl = msg = dtl + 'Click to play';
		}
		lnkObj.title = dtl
		window.status = msg
	}
	else window.status = '';
	return true;
}


// TAKES FILE SIZE IN KILOBYTES, RETURNS FORMATTED FILESIZE IN MB/KB
function getFileSize(fskb){
	if(fskb < 1) fskb = '1 KB';
	else {
		if(fskb < 500)fskb += ' KB';
		else fskb = formatNumber((fskb*1024)/1048576,2) + ' MB';
	}
	return fskb;
}


// FORMATS DECIMAL NUMBERS TO A GIVEN PRECISION (NUMBER OF PLACES)
function formatNumber(num,places){
	var dec='';
	places=places>0?places:1;
	for(x=0;x<places;x++)dec=dec+'0';
	dec=num.toString()+dec;
	var idx=dec.indexOf('.')+1;
	return parseInt(num)+'.'+ dec.substring(idx,idx+places);
}

// CALCULATES AND FORMATS DOWNLOAD TIME IN HOURS AND MINUTES FOR A GIVEN BITRATE
function getDownloadTime(fskb,mdmSpeed){
	var tm = '<1 min';
	if(fskb==''||isNaN(fskb)) return tm;
	var mdmFactor = 1;
	var pl = '';
	if(mdmSpeed=='modem')mdmFactor = '.138198';			// 56KB
	else if(mdmSpeed=='isdn')mdmFactor = '.061084';		// 128KB
	else if(mdmSpeed=='dsl')mdmFactor = '.015294';		// 512KB
	else if(mdmSpeed=='cbl')mdmFactor = '.005159';		// 1.5MB
	var ft = parseInt(fskb*mdmFactor);
	var m = Math.round(ft/60)%60;
	var h = (Math.round((ft/60))-m)/60;
	if(h==0 && m==0) return tm;
	else {
		if(h>0)tm = h +':'+ m +' hr'+ (m>0?'s':'');
		else tm = m +' min';
	}
	return tm;
}

