var headers ;

var contents ;

var bodies ;

var xmlDoc ;

var currIndex ;

function firstLoad ()
{

	document.getElementById ( 'pageFrame' ).setAttribute ( 'src' , 'html/' + filenames[0] + '.html' ) ;

	document.getElementById ( 'imgNext' ).setAttribute ( 'src' , 'thumb/' + filenames[1] + '.jpg' ) ;

	if ( document.getElementById('searchText').value.length > 0 && document.getElementById('searchText').value != "Please enter keyword(s)" )

		document.getElementById('searchButton').disabled = false ;

	else

		document.getElementById('searchButton').disabled = true ;

}

function getHeaders ( index )
{

	currIndex = index ;

	var fname ;

	var regex = /_str/ ;

	if ( regex.test ( filenames[index] ) )

		fname = filenames [ index ].substring ( 0 , filenames [ index ].lastIndexOf ( '_' ) ) ;

	else

		fname = filenames [ index ] ;

	var filePath = "xml/" + fname + ".xml" ;

	if ( document.implementation && document.implementation.createDocument )
	{

		xmlDoc = document.implementation.createDocument ( "" , "" , null ) ;

		xmlDoc.async = false ;

		xmlDoc.onload = buildHeaders ;

	}
	else if ( window.ActiveXObject )
	{

		xmlDoc = new ActiveXObject ( "Microsoft.XMLDOM" ) ;

		xmlDoc.async = false ;

		xmlDoc.onreadystatechange = function ()
		{
			if (xmlDoc.readyState == 4) buildHeaders()
		} ;

 	}
	else
	{

		alert ( "Your browser can't handle this script" ) ;

		return ;

	}

	xmlDoc.load ( filePath ) ;

}

function buildHeaders()
{

	var pBodies = xmlDoc.getElementsByTagName ( 'body' ) ;

	var pHeaders = xmlDoc.getElementsByTagName ( "body.head" ) ;

	bodies = new Array() ;

	headers = new Array() ;

	contents = new Array() ;

	for ( var iBody=0 ; iBody < pBodies.length ; ++iBody )
	{

		bodies [ iBody ] = "" ;

		headers [ iBody ] = "" ;

		contents [ iBody ] = "" ;

		var iMaxChar = 128 * 2 /3 ;

		var pHLs = pHeaders [ iBody ].getElementsByTagName ( "hl1" ) ;

		for ( var iHeader = 0 ; iHeader < pHLs.length ; ++iHeader )
		{

			var sTextHeader ;

			if ( window.ActiveXObject )

				sTextHeader = pHLs[iHeader].text ;

			else

				sTextHeader = pHLs[iHeader].textContent ;

			headers [ iBody ] += sTextHeader + " " ;

		}

		var sTest = headers [ iBody ].replace(/^\s+/g, '').replace(/\s+$/g, '') ;

		sHeader = headers [ iBody ] ;

		headers [ iBody ] = sHeader.substring ( 0 , iMaxChar ) + ( sHeader.length > iMaxChar ?  "..." : '' ) ;

		if ( ! sTest.length )

			headers [ iBody ] = "This article does not contain headline " ;

		iMaxChar = 128 ;

		var pContents = pBodies [ iBody ].getElementsByTagName ( 'body.content' ) ;

		if ( pContents.length > 0 && sTest.length > 0 )
		{

			var sTextContent ;

			if ( window.ActiveXObject )

				sTextContent = pContents [ 0 ].text ;

			else

				sTextContent = pContents[0].textContent ;

			contents [ iBody ] += sTextContent.substring ( 0 , iMaxChar ) + ( sTextContent.length > iMaxChar ?  "..." : '' ) ;

		}
		else

			contents [ iBody ] = "This article does not contain body text" ;

		if ( window.ActiveXObject )

			bodies [ iBody ] += pBodies [ iBody ].text ;

		else

			bodies [ iBody ] += pBodies [ iBody ].textContent ;

	}

	buildTOC() ;

	var size = getCookie ( "size" ) ;

	document.getElementById ( 'viewSize' ).selectedIndex = ( size ) ? size : 2 ;

	changeMode() ;

	changeSize() ;

}

function getHeader ( index )
{
	return headers [ index ] ;
}

function getHeaderNum ()
{
	return headers.length ;
}

function getContent ( index )
{
	return contents [ index ] ;
}

function getContentNum ()
{
	return contents.length ;
}

function getBody ( index )
{
	return bodies [ index ] ;
}

function getBodyNum ()
{
	return bodies.length ;
}

function buildTOC()
{

	for ( var iAlphabet=0 ; iAlphabet < 26 ; ++iAlphabet )

		document.getElementById ( 'art' + iAlphabet ).style.display='none';

	var nHeaders = getHeaderNum() ;

	var nStories = articles[currIndex].length ;

	for ( var iStoryNum =0 ; iStoryNum<nStories ; ++iStoryNum )
	{

		var story = document.getElementById ( 'story' + iStoryNum ) ;

		while ( story.firstChild )

			story.removeChild ( story.firstChild ) ;

		if ( iStoryNum < nHeaders )
		{

			var strText = getHeader ( iStoryNum ) ;

			strText = strText.replace ( /<br\/>/g , '' ) ;
		
			var newTxt = document.createTextNode ( strText ) ;

			story.appendChild ( newTxt ) ;

		}

	}

	for ( var iStory=nStories ; iStory > 0 ; --iStory )
	{

		if ( iStory > nHeaders ) document.getElementById ( 'art' + (iStory-1) ).style.display='none';

		else 	document.getElementById ( 'art' + (iStory-1) ).style.display='';

	}

}

function buildPageList()
{

	for ( var iNum = 0 ; iNum < pages.length ; ++iNum )
	{

		var newItem = document.createElement ( 'option' ) ;

		newItem.setAttribute ( 'value' , iNum ) ;

		var newText = document.createTextNode ( '  page ' + pages[iNum] ) ;

		newItem.appendChild ( newText ) ;

		document.getElementById ( 'pageNo' ).appendChild ( newItem ) ;

	}

}

function goFirst()
{

	document.getElementById ( 'pageFrame' ).setAttribute ( 'src' , 'html/' + filenames[0] + '.html' ) ;

	document.getElementById ( 'pageNo' ).options[0].selected = true ;

	getHeaders ( 0 , true ) ;

	disableAnchor ( document.getElementById ( 'goNext' ) , false ) ;

	disableAnchor ( document.getElementById ( 'goLast' ) , false ) ;

	disableAnchor ( document.getElementById ( 'goFirst' ) , true ) ;

	disableAnchor ( document.getElementById ( 'goPrev' ) , true ) ;

	document.getElementById ( 'imgPrev' ).setAttribute ( 'src' , 'image/transparent.gif' ) ;

	document.getElementById ( 'imgNext' ).setAttribute ( 'src' , 'thumb/' + filenames[1] + '.jpg' ) ;

}

function goLast()
{

	document.getElementById ( 'pageFrame' ).setAttribute ( 'src' , 'html/' + filenames[ filenames.length - 1 ] + '.html' ) ;

	document.getElementById ( 'pageNo' ).options[ filenames.length - 1 ].selected = true ;

	getHeaders ( filenames.length - 1 , true ) ;

	disableAnchor ( document.getElementById ( 'goFirst' ) , false ) ;

	disableAnchor ( document.getElementById ( 'goPrev' ) , false ) ;

	disableAnchor ( document.getElementById ( 'goNext' ) , true ) ;

	disableAnchor ( document.getElementById ( 'goLast' ) , true ) ;

	document.getElementById ( 'imgNext' ).setAttribute ( 'src' , 'image/transparent.gif' ) ;

	document.getElementById ( 'imgPrev' ).setAttribute ( 'src' , 'thumb/' + filenames[ filenames.length - 2 ] + '.jpg' ) ;

}

function goPrev()
{

	var index = document.getElementById ( 'pageNo' ).selectedIndex - 1 ;

	if ( index > 0 )
	{

		document.getElementById ( 'pageFrame' ).setAttribute ( 'src' , 'html/' + filenames[ index ] + '.html' ) ;

		document.getElementById ( 'pageNo' ).options[ index ].selected = true ;

		getHeaders ( index , true ) ;

		disableAnchor ( document.getElementById ( 'goNext' ) , false ) ;

		disableAnchor ( document.getElementById ( 'goLast' ) , false ) ;

		document.getElementById ( 'imgPrev' ).setAttribute ( 'src' , 'thumb/' + filenames[ index - 1 ] + '.jpg' ) ;

		document.getElementById ( 'imgNext' ).setAttribute ( 'src' , 'thumb/' + filenames[ index + 1 ] + '.jpg' ) ;

	}
	else if ( index > -1 )

		goFirst() ;

}

function goNext()
{

	var index = document.getElementById ( 'pageNo' ).selectedIndex + 1 ;

	if ( index < filenames.length - 1 )
	{

		document.getElementById ( 'pageFrame' ).setAttribute ( 'src' , 'html/' + filenames[ index ] + '.html' ) ;

		document.getElementById ( 'pageNo' ).options[ index ].selected = true ;

		getHeaders ( index , true ) ;

		disableAnchor ( document.getElementById ( 'goFirst' ) , false ) ;

		disableAnchor ( document.getElementById ( 'goPrev' ) , false ) ;

		document.getElementById ( 'imgPrev' ).setAttribute ( 'src' , 'thumb/' + filenames[ index - 1 ] + '.jpg' ) ;

		document.getElementById ( 'imgNext' ).setAttribute ( 'src' , 'thumb/' + filenames[ index + 1 ] + '.jpg' ) ;

	}
	else

		goLast() ;

}

function disableAnchor ( obj , disable )
{
	
	if ( disable )

		obj.style.cursor = '' ;

	else

		obj.style.cursor = 'pointer' ;

}

function goPage()
{

	var index = document.getElementById ( 'pageNo' ).selectedIndex ;

	document.getElementById ( 'pageFrame' ).setAttribute ( 'src' , 'html/' + filenames[ index ] + '.html' ) ;

	getHeaders ( index , true ) ;

	setNav ( index ) ;

}

function setNav ( index )
{

	if ( index == 0 )
	{

		disableAnchor ( document.getElementById ( 'goFirst' ) , true ) ;

		disableAnchor ( document.getElementById ( 'goPrev' ) , true ) ;

		disableAnchor ( document.getElementById ( 'goNext' ) , false ) ;

		disableAnchor ( document.getElementById ( 'goLast' ) , false ) ;

		document.getElementById ( 'imgPrev' ).setAttribute ( 'src' , 'image/transparent.gif' ) ;

		document.getElementById ( 'imgNext' ).setAttribute ( 'src' , 'thumb/' + filenames[ index + 1 ] + '.jpg' ) ;

	}
	else if ( index < filenames.length - 1 )
	{

		disableAnchor ( document.getElementById ( 'goFirst' ) , false ) ;

		disableAnchor ( document.getElementById ( 'goPrev' ) , false ) ;

		disableAnchor ( document.getElementById ( 'goNext' ) , false ) ;

		disableAnchor ( document.getElementById ( 'goLast' ) , false ) ;

		document.getElementById ( 'imgPrev' ).setAttribute ( 'src' , 'thumb/' + filenames[ index - 1 ] + '.jpg' ) ;

		document.getElementById ( 'imgNext' ).setAttribute ( 'src' , 'thumb/' + filenames[ index + 1 ] + '.jpg' ) ;

	}
	else
	{

		disableAnchor ( document.getElementById ( 'goFirst' ) , false ) ;

		disableAnchor ( document.getElementById ( 'goPrev' ) , false ) ;

		disableAnchor ( document.getElementById ( 'goNext' ) , true ) ;

		disableAnchor ( document.getElementById ( 'goLast' ) , true ) ;

		document.getElementById ( 'imgPrev' ).setAttribute ( 'src' , 'thumb/' + filenames[ index - 1 ] + '.jpg' ) ;

		document.getElementById ( 'imgNext' ).setAttribute ( 'src' , 'image/transparent.gif' ) ;

	}

}

function changeMode()
{

	document.getElementById ( 'viewMode' ).value = document.getElementById ( 'viewType' ).selectedIndex ;

	setCookie("value", document.getElementById ( 'viewType' ).selectedIndex ) ;

}

function changeSize()
{

	var index = document.getElementById ( 'pageNo' ).selectedIndex ;

	document.getElementById ( 'pageSize' ).value = document.getElementById ( 'viewSize' ).selectedIndex ;

	var iSize = document.getElementById ( 'pageSize' ).value ;

	if ( iSize != 2 )

		document.getElementById ( 'pageFrame' ).setAttribute ( 'src' , 'html/' + filenames[ index ] + iSize + '.html' ) ;

	else

		document.getElementById ( 'pageFrame' ).setAttribute ( 'src' , 'html/' + filenames[ index ] + '.html' ) ;

	setCookie("size",  document.getElementById('viewSize').selectedIndex );

}

function openPDF ( num , page , search )
{

	var index ;

	if ( page == undefined )

		index = currIndex ;

	else

		index = page ;

	var fname = articles[index][num] ; // .substring ( 0 , articles[index][num].lastIndexOf ( '.' ) ) ;

	var fsize = document.getElementById('viewSize').selectedIndex ;

	var curhead = "" ;

	if ( search )
	{

		var pHeaders = xmls [ page ].getElementsByTagName ( "body.head" ) ;

		var pHLs = pHeaders [ num ].getElementsByTagName ( "hl1" ) ;

		for ( var iHeader = 0 ; iHeader < pHLs.length ; ++iHeader )
		{

			var sTextHeader ;

			if ( window.ActiveXObject )

				sTextHeader = pHLs[iHeader].text ;

			else

				sTextHeader = pHLs[iHeader].textContent ;

			curhead += sTextHeader + " " ;

		}

		var sTest = curhead.replace(/^\s+/g, '').replace(/\s+$/g, '') ;

		curhead = sTest ;

	}
	else

		curhead = headers[num].substring ( 0 , headers[num].lastIndexOf ( ' ' ) ) ;

	if ( curhead == 'ADVERTENTIE' || curhead == 'Advertisement' || curhead == 'This article does not contain headline' )

		setCookie ( "advert" , "1" ) ;

	else

		setCookie ( "advert" , "0" ) ;

	setCookie("name", fname);

	top.setCookie("size", fsize );

	setCookie ("search",search);

	window.open('viewer.html','','scrollbars=no,menubar=no,height='+(screen.height)+',width='+(screen.width)+',resizable=yes,toolbar=no,location=no,status=no');

}

function formatDate ( input )
{

	var months = new Array() ;
	months[0] = "January" ;
	months[1] = "February" ;
	months[2] = "March" ;
	months[3] = "April" ;
	months[4] = "May" ;
	months[5] = "June" ;
	months[6] = "July" ;
	months[7] = "August" ;
	months[8] = "September" ;
	months[9] = "October" ;
	months[10] = "November" ;
	months[11] = "December" ;

	input += "";

	var year = input.substring ( 0 , 4 ) ;

	var month = months [ input.substring ( 4 , 6 ) - 1 ] ;

	var day = input.substring ( 6 , 8 ) ;

	return ( day + " " + month + " " + year ) ;

}

function buildPublication()
{

	var pub = document.getElementById ( 'pubName' ) ;

	while ( pub.firstChild )

		pub.removeChild ( pub.firstChild ) ;

	var pubInfo = document.createTextNode ( publication + " Web Edition" ) ;

	pub.appendChild ( pubInfo ) ;

	pub = document.getElementById ( 'pubDate' ) ;

	while ( pub.firstChild )

		pub.removeChild ( pub.firstChild ) ;

	pubInfo = document.createTextNode ( formatDate ( date ) ) ;

	pub.appendChild ( pubInfo ) ;

}
