// ========================================================================
// Sets dimensions of all objects in the page based on the frame dimensions
// ========================================================================
function updateInterface(bUpdateFlashObject) {

	// Set dimensions of the frame
	var aFrameDimensions			= getFrameDimensions();
	var nFrameWidth					= aFrameDimensions[0];
	var nFrameHeight				= aFrameDimensions[1];

	// Create objects of the elements
	var oTableLoading				= document.getElementById('loading');
	var oDivMain					= document.getElementById('main');
	var oDivHeader					= document.getElementById('header');
	var oDivViewer					= document.getElementById('viewer');
	var oDivPanel					= document.getElementById('panel');
	var oDivToggle					= document.getElementById('toggleDiv');
	var oDivTabs					= document.getElementById('tabs');
	var oDivFooter					= document.getElementById('footer');
	// var oTopview					= document.getElementById('topview');
	
	// Make main DIV invisible
	oDivMain.style.visibility		= 'hidden';
	oTableLoading.style.visibility	= 'visible';

	// Some shortcuts...
	var bFullscreenPanel			= (sCurrentTab == 'album');
	var bDivPanelVisible			= (oDivPanel.style.display != 'none');
	var nDivTabsWidth				= parseInt(oDivTabs.style.width);
	var nDivPanelWidth				= bDivPanelVisible ? parseInt(oDivPanel.style.width) : 0;
	var nDivHeaderHeight			= parseInt(oDivHeader.style.height);
	var nDivFooterHeight			= parseInt(oDivFooter.style.height);
	var nDivToggleWidth				= parseInt(oDivToggle.style.width);

	// Set sizes and positions of all DIV's (only 'top' and 'left' (not 'right' and 'bottom') are set, visually better on resize!)
	oDivHeader.style.width			= nFrameWidth + 'px';
	oDivViewer.style.width			= bDivPanelVisible ? (nFrameWidth - nDefaultPanelWidth - nDivTabsWidth - nDivToggleWidth + 'px') : (nFrameWidth - nDivTabsWidth - nDivToggleWidth + 'px');
	oDivViewer.style.height			= nFrameHeight - nDivHeaderHeight - nDivFooterHeight + 'px';
	oDivToggle.style.left			= bDivPanelVisible ? (nFrameWidth - nDivTabsWidth - nDivPanelWidth + 'px') : (nDefaultPanelWidth + 'px');
	oDivToggle.style.height			= nFrameHeight - nDivHeaderHeight + 'px';
	oDivPanel.style.width			= bFullscreenPanel ? (nFrameWidth - nDivTabsWidth + 'px') : (nDefaultPanelWidth + 'px');
	oDivPanel.style.height			= nFrameHeight - nDivHeaderHeight + 'px';
	oDivPanel.style.left			= bFullscreenPanel ? '0px' : (nFrameWidth - nDefaultPanelWidth - nDivTabsWidth + 'px');
	oDivTabs.style.height			= nFrameHeight - nDivHeaderHeight + 'px';
	oDivTabs.style.left				= nFrameWidth - nDivTabsWidth + 'px';
	oDivFooter.style.width			= oDivViewer.style.width;
	oDivFooter.style.top			= nFrameHeight - nDivFooterHeight + 'px';

	// Resize Flash object?
	/*
	if (bUpdateFlashObject) {
		oTopview.style.width		= oDivViewer.style.width;
		oTopview.style.height		= oDivViewer.style.height;
	}
	*/

	var oPanelZoeken				= document.getElementById('panel_zoeken');
	var oIframeZoeken				= document.getElementById('iframe_zoeken');
	
	oPanelZoeken.style.height		= (nFrameHeight - nDivHeaderHeight) + 'px';
	oIframeZoeken.style.height		= oPanelZoeken.style.height;
	oIframeZoeken.style.width		= nDefaultPanelWidth + 'px';

	// Make main DIV visible
	oTableLoading.style.visibility	= 'hidden';
	oDivMain.style.visibility		= 'visible';
	
	oDivToggle.style.left	= bDivPanelVisible ? (nFrameWidth - nDivTabsWidth - nDivPanelWidth - nDivToggleWidth + 'px') : (nFrameWidth - nDivTabsWidth - nDivToggleWidth + 'px');
}


// ===========================
// Get dimensions of the frame
// ===========================
function getFrameDimensions() {

	var nFrameWidth;
	var nFrameHeight;

	if (self.innerWidth) {
		nFrameWidth			= self.innerWidth;
		nFrameHeight		= self.innerHeight;
	}	else if (document.documentElement && document.documentElement.clientWidth) 	{
		nFrameWidth			= document.documentElement.clientWidth;
		nFrameHeight		= document.documentElement.clientHeight;
	} else if (document.body) {
		nFrameWidth			= document.body.clientWidth;
		nFrameHeight		= document.body.clientHeight;
	}

	var aFrameDimensions	= new Array(nFrameWidth, nFrameHeight);
	return aFrameDimensions;
}

function togglePanel() {

	// Set dimensions of the frame
	var aFrameDimensions	= getFrameDimensions();
	var nFrameWidth			= aFrameDimensions[0];
	var nFrameHeight		= aFrameDimensions[1];
	
	// Create objects of the elements
	var oDivMain			= document.getElementById('main');
	var oDivHeader			= document.getElementById('header');
	var oDivViewer			= document.getElementById('viewer');
	var oDivToggle			= document.getElementById('toggleDiv');
	var oDivPanel			= document.getElementById('panel');
	var oDivTabs			= document.getElementById('tabs');
	var oDivFooter			= document.getElementById('footer');
	// var oTopview			= document.getElementById('topview');
	var oImgToggle			= document.getElementById('toggle');

	// Some shortcuts...
	var bDivPanelVisible	= (oDivPanel.style.display != 'none');
	var nDivPanelWidth		= parseInt(oDivPanel.style.width);
	var nDivTabsWidth		= parseInt(oDivTabs.style.width);
	var nDivToggleWidth		= parseInt(oDivToggle.style.width);
	var bFullscreenPanel	= (sCurrentTab == 'album');

	if (bDivPanelVisible) {
		oDivPanel.style.display = 'none';
		oDivViewer.style.display = '';
		oDivFooter.style.display = '';
		oDivViewer.style.width= nFrameWidth - nDivTabsWidth - nDivToggleWidth + 'px';
		// oTopview.style.width= nFrameWidth - nDivTabsWidth - nDivToggleWidth + 'px';
		oDivFooter.style.width= nFrameWidth - nDivTabsWidth - nDivToggleWidth + 'px';
		oImgToggle.src= sImagePath + 'toggle_out.gif';
		oDivToggle.style.left = nFrameWidth - nDivTabsWidth - nDivToggleWidth + 'px';
	} else {
		oDivPanel.style.display = '';
		if (bFullscreenPanel) {
			oDivViewer.style.display = 'none';
			oDivFooter.style.display = 'none';
		} else {
			oDivViewer.style.display = '';
			oDivFooter.style.display = '';
		}
		oImgToggle.src = sImagePath + 'toggle_in.gif';
		if (!bFullscreenPanel) {
			oDivToggle.style.left	= nFrameWidth - nDivTabsWidth - nDivPanelWidth - nDivToggleWidth + 'px';
			oDivViewer.style.width	= nFrameWidth - nDivTabsWidth - nDivPanelWidth - nDivToggleWidth + 'px';
			// oTopview.style.width	= nFrameWidth - nDivTabsWidth - nDivPanelWidth - nDivToggleWidth + 'px';
			oDivFooter.style.width	= nFrameWidth - nDivTabsWidth - nDivPanelWidth - nDivToggleWidth + 'px';
		}
	}
}

function showPanel() {
	// SHOULD BE INTEGERATED WITH FUNCTION 'togglePanel'
	// Set dimensions of the frame
	var aFrameDimensions = getFrameDimensions();
	var nFrameWidth = aFrameDimensions[0];
	var nFrameHeight = aFrameDimensions[1];

	// Create objects of the elements
	var oDivMain= document.getElementById('main');
	var oDivHeader= document.getElementById('header');
	var oDivViewer= document.getElementById('viewer');
	var oDivToggle= document.getElementById('toggleDiv');
	var oDivPanel = document.getElementById('panel');
	var oDivTabs= document.getElementById('tabs');
	var oDivFooter= document.getElementById('footer');
	// var oTopview= document.getElementById('topview');
	var oImgToggle= document.getElementById('toggle');

	// Some shortcuts...
	var bDivPanelVisible= (oDivPanel.style.display != 'none');
	var nDivPanelWidth= parseInt(oDivPanel.style.width);
	var nDivTabsWidth = parseInt(oDivTabs.style.width);
	var nDivToggleWidth = parseInt(oDivToggle.style.width);
	var bFullscreenPanel= (sCurrentTab == 'album');

	oDivPanel.style.display = '';
	if (bFullscreenPanel) {
		oDivViewer.style.display = 'none';
		oDivFooter.style.display = 'none';
	} else {
		oDivViewer.style.display = '';
		oDivFooter.style.display = '';
	}




	oImgToggle.src = sImagePath + 'toggle_in.gif';
	if (!bFullscreenPanel) {
		oDivViewer.style.width= nFrameWidth - nDivTabsWidth - nDivPanelWidth - nDivToggleWidth + 'px';
		// oTopview.style.width= nFrameWidth - nDivTabsWidth - nDivPanelWidth - nDivToggleWidth + 'px';
		oDivFooter.style.width= nFrameWidth - nDivTabsWidth - nDivPanelWidth - nDivToggleWidth + 'px';
		oDivToggle.style.left = nFrameWidth - nDivTabsWidth - nDivPanelWidth - nDivToggleWidth + 'px';
	}
}

function setTab (sTab) {
	// Set global variable
	sCurrentTab = sTab;
	
	// Set dimensions of the frame
	var aFrameDimensions = getFrameDimensions();
	var nFrameWidth = aFrameDimensions[0];
	var nFrameHeight = aFrameDimensions[1];

	// Create objects of the elements
	var oDivMain= document.getElementById('main');
	var oDivHeader= document.getElementById('header');
	var oDivViewer= document.getElementById('viewer');
	var oDivPanel = document.getElementById('panel');
	var oDivTabs= document.getElementById('tabs');
	var oDivFooter= document.getElementById('footer');
	// var oTopview= document.getElementById('topview');
	
	// Some shortcuts...
	var nDivPanelWidth= parseInt(oDivPanel.style.width);
	var nDivTabsWidth = parseInt(oDivTabs.style.width);
	var bFullscreenPanel= (sTab == 'album');

	var aTabs = new Array('album', 'index', 'bijschrift', 'gerelateerd', 'zoeken');
	for(i = 0; i < aTabs.length; i++) {
		var oTab = document.getElementById('tab_' + aTabs[i]);
		var oPanel = document.getElementById('panel_' + aTabs[i]);
		if (aTabs[i] == sTab) {
			curTab = i + 1;
			curTabImg = 'components/com_nfm_album/images/tab'+curTab+'_'+curLanguage+'.gif';
			oTab.style.backgroundImage = "url("+curTabImg+")";
			oPanel.style.display = '';
		} else {
			oTab.style.backgroundImage = '';
			oTab.style.marginLeft = '1px';
			oPanel.style.display = 'none';
		}
	}
	if (bFullscreenPanel) {
		oDivPanel.style.width = nFrameWidth - nDivTabsWidth + 'px';
		var nDivPanelWidth= nFrameWidth - nDivTabsWidth;
		oDivViewer.style.display = 'none';
		oDivFooter.style.display = 'none';
		oDivPanel.style.left = '0px';
	} else {
		oDivPanel.style.width = nDefaultPanelWidth + 'px';
		var nDivPanelWidth= nDefaultPanelWidth;

		oDivViewer.style.width= nFrameWidth - nDivTabsWidth - nDivPanelWidth + 'px';
		// OP DEZE REGEL TREEDT DE '309044 - Flashplayer 8 "Bad NPObject as private data!"' BUG OP.
		//oTopview.style.width= nFrameWidth - nDivTabsWidth - nDivPanelWidth + 'px';
		oDivPanel.style.left= nFrameWidth - nDivTabsWidth - nDivPanelWidth + 'px';
		oDivViewer.style.display = '';
		oDivFooter.style.display = '';
	}
	showPanel();
}

function createViewer(sCp) {

	// Get dimensions of the viewer area
	var oDivViewer= document.getElementById('viewer');
	nWidth = oDivViewer.style.width;
	nHeight = oDivViewer.style.height;
	var oFlash = new FlashObject(sFlashPath + 'topview.allnew.swf', 'topview', nWidth, nHeight, '7', '#343434');
	
	sUrl= 'index.php?option=com_nfm_album&Itemid=183&task=flashxml&album_id=' + sAlbumId + '&cp=' + sCp;
	bladerUrl = 'index.php?option=com_nfm_album&Itemid=183&task=pager&album_id=' + sAlbumId + '&cp=' + sCp;

	oFlash.addVariable('xmlpath', escape(sUrl));
	//oFlash.addParam('scale', 'noscale');
	//oFlash.addParam('salign', 'lt');
	//oFlash.addParam('quality', 'low');
	oFlash.addParam('loop', 'false');
	oFlash.addParam('menu', 'false');
	oFlash.addParam('swliveconnect', 'true');
	// !!! DIT GEEFT VEEL VERTRAGING, BOVENDIEN WERKT SCROLLWIEL DAN NIET
	//oFlash.addParam('wmode', 'transparent');
	oFlash.write('viewer');
	importXML(bladerUrl,'krantBlader');

}

function krantBlader(oXml) {
	
	if(oXml.documentElement.tagName == 'error') {
		/*
		sError = oXml.documentElement.firstChild.nodeValue;
		alert(sError);
		prevLink = '';
		nextLink = '';
		sCenterfooter = '';
		sHeader = '# ERROR #'
		*/
	} else {
		var iTotal= oXml.documentElement.getElementsByTagName('total')[0].firstChild? parseInt(oXml.documentElement.getElementsByTagName('total')[0].firstChild.nodeValue) : 0;
		var iFirst= oXml.documentElement.getElementsByTagName('first')[0].firstChild? parseInt(oXml.documentElement.getElementsByTagName('first')[0].firstChild.nodeValue) : 0;
		var iLast = oXml.documentElement.getElementsByTagName('last')[0].firstChild ? parseInt(oXml.documentElement.getElementsByTagName('last')[0].firstChild.nodeValue) : 0;
		var iCurrent= oXml.documentElement.getElementsByTagName('current')[0].firstChild? parseInt(oXml.documentElement.getElementsByTagName('current')[0].firstChild.nodeValue) : 0;
		
		var sPageNumber = oXml.documentElement.getElementsByTagName('pagenumber')[0].firstChild ? oXml.documentElement.getElementsByTagName('pagenumber')[0].firstChild.nodeValue : '';
		var sCaption= oXml.documentElement.getElementsByTagName('caption')[0].firstChild? oXml.documentElement.getElementsByTagName('caption')[0].firstChild.nodeValue : '';
		var sRelatedPhotos= oXml.documentElement.getElementsByTagName('relatedphotos')[0].firstChild? oXml.documentElement.getElementsByTagName('relatedphotos')[0].firstChild.nodeValue : '';

		var oTdFooterLeft = document.getElementById('footer_left');
		var oTdFooterCenter = document.getElementById('footer_center');
		var oTdFooterRight= document.getElementById('footer_right');
		
		var sLinkFirst= (iCurrent == iFirst) ? '<img src="' + sImagePath + 'pn_icon_first_disabled.gif" alt="" />': '<a href="javascript:createViewer(1);"><img src="' + sImagePath + 'pn_icon_first.gif" alt="" /></a>';
		var sLinkPrevious = (iCurrent == iFirst) ? '<img src="' + sImagePath + 'pn_icon_previous_disabled.gif" alt="" />' : '<a href="javascript:createViewer(' + (iCurrent - 1) + ');"><img src="' + sImagePath + 'pn_icon_previous.gif" alt="" /></a>';
		var sLinkNext = (iCurrent == iLast)? '<img src="' + sImagePath + 'pn_icon_next_disabled.gif" alt="" />' : '<a href="javascript:createViewer(' + (iCurrent + 1) + ');"><img src="' + sImagePath + 'pn_icon_next.gif" alt="" /></a>';
		var sLinkLast = (iCurrent == iLast)? '<img src="' + sImagePath + 'pn_icon_last_disabled.gif" alt="" />' : '<a href="javascript:createViewer(' + iLast + ');"><img src="' + sImagePath + 'pn_icon_last.gif" alt="" /></a>';
	
		var aSpreadlist = oXml.documentElement.getElementsByTagName('spread');
		
		var sOptions = '';
		// var sOptions = '<option value="">Kies een pagina...</a>';
    	for(var i = 0; i < aSpreadlist.length; i++) {
    	  var sOptionValue = aSpreadlist[i].getAttribute('pagenumber');
    	  var sOptionLabel = aSpreadlist[i].getAttribute('label');
    	  //var sSelected = ((i+1) == iCurrent) ? ' selected="selected"' : '';
    	  sSelected = '';
    	  sOptions += '<option' + sSelected + ' value="' + sOptionValue + '">' + sOptionLabel + '</option>';
    	}
      	var sSelect = '<select id="page_select" onchange="createViewer(this.value);" style="vertical-align: middle;">' + sOptions + '</select>';
      	
    	oTdFooterLeft.innerHTML   = sLinkFirst + sLinkPrevious;
    	//oTdFooterCenter.innerHTML = '<strong>' + sPageNumber + '</strong> <span style="color: #aaaaaa;">(' + iCurrent + ' van ' + iTotal + ')</span>&nbsp;&nbsp;&nbsp;' + sSelect;
    	oTdFooterCenter.innerHTML = '<strong>' + sPageNumber + '</strong>&nbsp;&nbsp;&nbsp;' + sSelect;
    	oTdFooterRight.innerHTML  = sLinkNext + sLinkLast;

		// Create object of the panels
		var oDivPanelAlbum= document.getElementById('panel_album');
		var oDivPanelIndex= document.getElementById('panel_index');
		var oDivPanelZoeken = document.getElementById('panel_zoeken');
		var oDivPanelBijschrift = document.getElementById('panel_bijschrift');
		var oDivPanelGerelateerd= document.getElementById('panel_gerelateerd');
		
		// Fill panels
		oDivPanelBijschrift.innerHTML = '<h3>Paginabeschrijving</h3>' + sCaption;
		oDivPanelGerelateerd.innerHTML = '<h3>En verder...</h3>' + (sRelatedPhotos == '' ? 'Geen gerelateerde beelden.' : sRelatedPhotos);
	}
}

function showDetail(sHref) {
	var oWindow = window.opener;
	oWindow.location = sHref;
	oWindow.focus();
}

function xmlGetAttribute(oNode, sAttribute) {
	if (!oNode.attributes[sAttribute]) {
		sValue = '';
	} else {
		sValue = oNode.attributes[sAttribute];
	}
	return sValue;
}

function openTopviewCrop()
{
	document.location=mosConfig_live_site+"/?option=com_topview&task="+arguments[1] + "&" + arguments[0]
}

function printLayer()
{
	document.location=mosConfig_live_site+"/?option=com_topview&task=printLayer&" + arguments[0]
}

function shoppingcart(tjpFile)
{
	alert('Binnenkort kunt u een reproductie van deze pagina bestellen in onze online winkel.');
}

function topview()
{
	task=arguments[0];
	switch (task) {
		case 'help':
			openTopViewHelp();
			break;
		case 'crop':

			openTopviewCrop(arguments[1], 'saveselection');
			break;
		case 'shoppingcart':
			shoppingcart(arguments[1]);
			break;
		case 'initcomplete':
			break;
		default: alert('onbekende taak: ' + task);
	}
}

function openTopViewHelp() {
	// return;
	var sProperties = 'toolbar=no,location=no,status=no,menubar=no,scrollbars=yes,resizable=yes';
	var iWidth= 640;
	var iHeight = 400;
	var iLeft = (screen.availWidth - iWidth) / 2;
	var iTop= (screen.availHeight - iHeight) / 2;
	var sProperties = 'height=' + iHeight + ',width=' + iWidth + ',top=' + iTop + ',left=' + iLeft + ',' + sProperties;
	var sUrl= mosConfig_live_site + '/?option=com_topview&task=help';
	var oWin= window.open(sUrl, 'TopView uitleg', sProperties);
	oWin.focus();
}

function initcomplete() {
}