/*
	jst.js
	Client-Side JavaScript Templates
	(c)2002 Vlad Podvorny
	www.fishwasher.com
*/

var jstPgN = 0;
var jstPgTitle = "Client-Side JavaScript Templates";
var jstAuthor = 'Vlad Podvorny';
var jstMBox='fishmaster';
var jstMail=jstMBox+'@fis'+'hwasher.c'+'om';
var jstPgSubTitle = "&nbsp;";
var jstHdBanner = "&nbsp;";
var jstAuthorStr = oneCellTab('100%', '8', '', 'auth', 'by Vlad Podvorny', '');
var jstCreated = 'June 23, 2002';
var jstLastUpd = 'November 17, 2002';
var jstUpdated = (jstCreated != jstLastUpd) ? ('. Last revision: ' + jstLastUpd + '.') : '';
var ns4msg = (is.ns4) ? oneCellTab('', '2', '', 'warn', 'This is scaled down version for Netscape 4.xx. Generated HTML works buggy in this browser.', 'center') : '';

jstPages = ['Intro', 'JST Basics', 'Global JST File', 'Boxes', 'Pictured Frames', 'Navigation Elements', 'Random Content and Date', 'Building a Web Site', 'References'];

function jstSubtitle(pgN) {
	return (pgN + 1) + ': ' + jstPages[pgN];
}

function jstFileName(pageNum) {
	//var s = (pageNum == 0) ? 'index' : ('page' + (pageNum + 1));
	var s = 'page' + (pageNum + 1);
	s += '.html';
	return s;
}

/* --------------- JST footer ---------------- */
var jstFooterStr = '&copy; ' + makeLink(('mailto:' + jstMail), jstAuthor, 'footer', '') + ', ' + makeLink('http://www.fishwasher.com/', 'www.fishwasher.com', 'footer', '') + '. Created: ' + jstCreated + jstUpdated;
var jstFooter = oneCellTab('100%', '2', '', 'footer', jstFooterStr, 'left');

/* -------------- global sheet --------------- */
var jstHdW = 688; // fixed header
var inGap = 4;
var jstW = jstHdW + (2 * inGap);
var jstBrdW = (is.ns4) ? 1 : 16;
var jstBgC = '#ffffff';
var topGap = 8;
var glFrArr = new Array();

function jstGlOpen() {
	var s = '';
	s += spacer(1, topGap);
	if (!is.ns4) frameInit(glFrArr, '../img/fr3_16_');
	s += (is.ns4) ? boxOpen(jstBrdW, '#808080', jstW, jstBgC) : picFrameOpen(glFrArr, jstBrdW, jstW, jstBgC, '');
	s += '<table border="0"' + wAttr('100%') + padAttr(inGap) + ' cellspacing="0"><tr><td align="center">';
	return s + ns4msg;
}

function jstGlClose() {
	var s = '';
	s += jstFooter;
	s += '</td></tr></table>';
	s += (is.ns4) ? boxClose(jstBrdW, '#808080') : picFrameClose(glFrArr, jstBrdW, jstBgC);
	return s;
}

/* --------------- header -------------------- */
function jstHdPad(hdStuff) {
	var frFName = 'img/jsthd'; var frFExt = '.gif';
	var hdBgFName = 'img/jsthdbg.gif';
	var hdPicArr = new Array();
	var ns4BgC = (is.ns4) ? bcAttr('#9999cc') : '';
	for (var i = 0; i < 6; i++) hdPicArr[i] = frFName + i + frFExt;
	var s = '';
	s += '<table border="0"' + wAttr(jstHdW) + ' cellpadding="0" cellspacing="0">';
	s += '<tr><td>' + pic(hdPicArr[0], '', '', '') + '</td>';
	s += '<td>' + pic(hdPicArr[1], '', '', '') + '</td>';
	s += '<td>' + pic(hdPicArr[2], '', '', '') + '</td></tr>';
	s += '<tr><td>' + makePicLink(fwUrl, pic(hdPicArr[3], '', '', ''), '') + '</td>';
	s += '<td' + bgAttr(hdBgFName) + ' align="center">' + hdStuff + '</td>';
	s += '<td>' + pic(hdPicArr[4], '', '', '') + '</td></tr>';
	s += '<tr><td colspan="3">' + pic(hdPicArr[5], '', '', '') + '</td></tr></table>';
	return s;
}

function jstHeader(title, subtitle, banner) {
	var titleCss = 'hdtitle'; // as defined in jst.css
	var subCss = 'hdsub';
	var hdCellPad = 4;
	var s1 = '';
	s1 += '<table border="0"' + padAttr(hdCellPad) + ' cellspacing="0">';
	s1 += '<tr><td' + cssAttr(titleCss) + ' align="center">' + title + '</td></tr>';
	s1 += '<tr><td' + cssAttr(subCss) + ' align="center">' + subtitle + '</td></tr>';
	s1 += '</table>';
	var s = '';
	s += '<table border="0" cellpadding="0" cellspacing="0"><tr>';
	s += '<td>' + s1 + '</td>'; //s += '<td' + ns4hideBg() + '>' + s1 + '</td>';
	s += '<td>' + banner + '</td>'; //s += '<td' + ns4hideBg() + '>' + banner + '</td>';
	s += '</tr></table>';
	return jstHdPad(s);
}

/* ----------- table of contents ------------- */
function jstConTab(curPg) {
	var ctW = '';
	var ctBrdW = 1;
	var ctBrdC = '#c0c0c0';
	var ctBgC = '#ffffff';
	var ctCss = 'contab'; // defined in jst.css
	var ctHd = "Contents:";
	var ctPad = 8;
	var wrapN = Math.round(jstPages.length / 2);
	var s = '';
	s += '<table border="0"' + wAttr(ctW) + padAttr(ctPad) + ' cellspacing="0" align="center">';
	s += '<tr><td' + cssAttr(ctCss) + '>';
	for (var i = 0; i < jstPages.length; i++) {
		var pageN = i + 1;
		var ctItemTxt = pageN + ': ' + jstPages[i];
		var	ctItem = (i == curPg) ? ctItemTxt : makeLink(jstFileName(i), ctItemTxt, ctCss, '');
		s += (i == wrapN) ? ('</td><td' + cssAttr(ctCss) + '>') : ''
		s += ctItem + br;
	}
	s += '</td></tr>';
	s += '</table>';
	return '<center>' + boxHdOpen(ctBrdW, ctBrdC, ctW, ctBgC, ctHd, ctCss) + s + boxClose(ctBrdW, ctBrdC) + '</center>' + sp;
}

/* ---------- contents section --------------- */
function secOpen(secHd) {
	var secW = '90%';
	var secPad = 4;
	var secCss = 'sec'; // defined in jst.css
	var s = '';
	s += '<table border="0"' + wAttr(secW) + padAttr(secPad) + ' cellspacing="0" align="center">';
	s += '<tr><th' + cssAttr(secCss) + '>' + secHd + '</th></tr>';
	s += '<tr><td>';
	return s;
}

function secClose() {
	return '</td></tr></table>' + sp;
}

/* ------------- navigation bar -------------- */
function jstNavBar(curPg) {
	var navCss = 'navbar'; // defined in jst.css
	var cellPad = 8;
	var navbarW = '';
	var fwdStr = '&gt;&gt;';
	var bkwdStr = '&lt;&lt;';
	var prevItem = (curPg > 0) ? makeLink(jstFileName(curPg - 1), (jstPages[curPg - 1] + bkwdStr), navCss, '') : '';
	var nextItem = (curPg < (jstPages.length - 1)) ? makeLink(jstFileName(curPg + 1), (fwdStr + jstPages[curPg + 1]), navCss, '') : '';
	var s = '';
	s += '<table border="0"' + wAttr(navbarW) + padAttr(cellPad) + ' cellspacing="0" align="center"><tr>';
	if (prevItem != '') s += '<td' + cssAttr(navCss) + ' align="center"><nobr>' + prevItem + '</nobr></td>';
	for (var i = 0; i < jstPages.length; i++) {
		var pageN = i + 1;
		var navItem = (i == curPg) ? pageN : makeLink(jstFileName(i), (sp + pageN + sp), navCss, '');
		s += '<td' + cssAttr(navCss) + ' align="center"><nobr>' + navItem + '</nobr></td>';
	}
	if (nextItem != '') s += '<td' + cssAttr(navCss) + ' align="center"><nobr>' + nextItem + '</nobr></td>';
	s += '</tr></table>';
	return s;
}

/* ----------------- example ----------------- */
function exOpen(hd, css) {
	var exBrdW = 1;
	var exCellPad = 4;
	var exBc = '#808080';
	var thCss = 'example';
	var s = ''; 
	s += '<table border="0"' + padAttr(exBrdW) + ' cellspacing="0">';
	s += '<tr><th' + cssAttr(thCss) + bcAttr(exBc) + '>' + hd + '</th></tr>';
	s += '<tr><td' + bcAttr(exBc) + '>';
	s += '<table border="0"' + padAttr(exCellPad) + ' cellspacing="0"><tr><td' + cssAttr(css) + '><pre>';
	return s;
}

function exClose() {
	return '</pre></td></tr></table></td></tr></table>';
}

/* -------------- show example --------------- */
function openExWin(wName) {
	window.open('', wName, 'scrollbars=1,menubar=0,status=0,resizable=0,width=500,height=400,screenX=0,screenY=0');
	return true;
}

